Я хочу издеваться: < /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
Pytest Chain Promping между синхронизацией и асинхронными функциями ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Каковы различия между синхронизацией Python Playwright и асинхронными API?
Anonymous » » в форуме Python - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-