Das Testen des Async-Kontextmanager-Fixtures in Pytest führt zu einem unerwarteten Async-Generatorobjekt
Posted: 19 Jan 2025, 20:25
Dies hängt in gewisser Weise mit meinem tatsächlichen Code zusammen. Die in Pytest Fixture verwendete Async-Kontextmanagerklasse gibt ein Async-Generatorobjekt anstelle der erwarteten Kontextmanagerinstanz zurück. Benötigen Sie Hilfe bei der Lösung dieses Problems.
Dies ist mein Code
Das ist der Fehler, den ich erhalte
Fixure gibt mir also grundsätzlich async_generator und nicht die Instanz von MyAsyncContextManager
Dies ist mein Code
Code: Select all
import asyncio
class MyAsyncContextManager:
async def __aenter__(self):
print("Entering async context")
return self
async def __aexit__(self, exc_type, exc, tb):
print("Exiting async context")
def add_numbers(self, a, b):
return a + b
@pytest.fixture
async def async_context_manager():
async with MyAsyncContextManager() as manager:
yield manager
@pytest.mark.asyncio
async def test_async_context_manager(async_context_manager):
async_context_manager.add_numbers(1, 2)
Code: Select all
> async_context_manager.add_numbers(1, 2)
AttributeError: 'async_generator' object has no attribute 'add_numbers'