Получение TypeError: Coroutine 'объект не поддерживает асинхронный протокол менеджера контекста Pytest PytestPython

Программы на Python
Anonymous
 Получение TypeError: Coroutine 'объект не поддерживает асинхронный протокол менеджера контекста Pytest Pytest

Сообщение Anonymous »

Я пишу тест на метод upload_payment_slip_file и получение выше в заголовке. Я видел связанную проблему, но, к счастью, это мне не помогло. Похоже, что насмешливые методы ввода/выхода не имеют смысла. Я что -то упускаю? < /P>
SapHttpClient = NewType("HttpClient", httpx.AsyncClient)

@pytest.fixture
async def response() -> AsyncMock:
class TestMockResponse:
file: ClassVar[bytes] = b'test'
response_headers: ClassVar[dict[str, Any]] = {"content-type": "application/pdf"}

response = MagicMock()
response.aread.return_value = AsyncMock(return_value=TestMockResponse.file)
response.headers.return_value = MagicMock(return_value=TestMockResponse.response_headers)
yield response
response.reset_mock()

@pytest.fixture
async def mock_stream_response(
response: AsyncMock,
):
class TestMockResponse:
file: ClassVar[bytes] = b'test'
headers: ClassVar[dict[str, str]] = {"content-type": "application/pdf"}

mock = AsyncMock()
mock.raise_for_status.return_value = MagicMock(status=200)
mock.__aenter__ = lambda _: response
mock.__aexit__ = lambda _: None
mock.aread.return_value = TestMockResponse.file

yield mock
mock.reset_mock()

async def test_get_payment_slip_pdf(
mock_stream_response: AsyncMock,
injection_context: aioinject.InjectionContext,
) -> None:
client = await injection_context.resolve(PaymentSapClient)
with patch.object(
client._client,
client._client.stream.__name__,
mock_stream_response
):
result = await client.upload_payment_slip_file(input_=MagicMock())
assert result.response_headers == {"content-type": "application/pdf"}


Подробнее здесь: https://stackoverflow.com/questions/793 ... us-context

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