Das Testen des Async-Kontextmanager-Fixtures in Pytest führt zu einem unerwarteten Async-GeneratorobjektPython

Python-Programme
Guest
 Das Testen des Async-Kontextmanager-Fixtures in Pytest führt zu einem unerwarteten Async-Generatorobjekt

Post by Guest »

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

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)
Das ist der Fehler, den ich erhalte

Code: Select all

> async_context_manager.add_numbers(1, 2)
AttributeError: 'async_generator' object has no attribute 'add_numbers'
Fixure gibt mir also grundsätzlich async_generator und nicht die Instanz von MyAsyncContextManager

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post