Тестирование приспособления асинхронного контекстного менеджера в pytest дает неожиданный объект асинхронного генератораPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Тестирование приспособления асинхронного контекстного менеджера в pytest дает неожиданный объект асинхронного генератора

Сообщение Anonymous »

Это в некоторой степени связано с моим реальным кодом: класс диспетчера контекста Async, используемый в приспособлении pytest, возвращает объект асинхронного генератора вместо ожидаемого экземпляра диспетчера контекста. Нужна помощь в решении этой проблемы.
Это мой код

Код: Выделить всё

 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)
Вот какую ошибку я получаю

Код: Выделить всё

> async_context_manager.add_numbers(1, 2)
AttributeError: 'async_generator' object has no attribute 'add_numbers'
так что в основном исправление дает мне async_generator, а не экземпляр MyAsyncContextManager

Подробнее здесь: https://stackoverflow.com/questions/784 ... c-generato
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»