Pytest Chain Promping между синхронизацией и асинхронными функциямиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pytest Chain Promping между синхронизацией и асинхронными функциями

Сообщение Anonymous »

Я хочу издеваться: < /p>
async with aiohttp.ClientSession() as session:
async with session.post("xyz.com") as resp:
x = await resp.json()
< /code>
В настоящее время я делаю: < /p>
# patched aiohttp as mock_aiohttp
mock_session = Mock()
mock_session_post_cm = AsyncMock()
mock_aiohttp.ClientSession.return_value.__aenter__.return_value = mock_session
mock_session.post.return_value = mock_session_post_cm
mock_session_post_cm.__aenter__.return_value.json.return_value = "ABC"

Однако это очень словесно, и намерение становится неясным, поскольку я просто хочу издеваться над значением x и не использую промежуточные макет. < Br /> Задача возникает из сочетания синхронизационных и асинхронных вызовов (Mock_session - это синхронизация, все остальное - асинхрон). Если все было либо свойством, либо функцией синхронизации, например, x = a (). B (). C.D.E () , тогда я мог бы издеваться над ним в одной строке с помощью mock_a.return_value.b.return_value.c.d ... , и аналогично это будет одна строка Если каждая функция была асинхронной, но каждый раз, когда она микширует, я должен создавать промежуточную переменную. Есть ли способ обойти это?mock_aiohttp.ClientSession.return_value_async.__aenter__.return_value_async
.post.return_value_sync.__aenter__.return_value_async
.json.return_value_async = "ABC"


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

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

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

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

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

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

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