Я пишу тест на метод 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
Получение TypeError: Coroutine 'объект не поддерживает асинхронный протокол менеджера контекста Pytest Pytest ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Обработка экземпляров контекстного менеджера внутри другого менеджера контекста
Anonymous » » в форуме Python - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-