Получение 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
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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