Вступить в клуб →
сложнаявопросТестирование: pytest, фикстуры, моки

Мок асинхронного клиента падает на await с TypeError

async def get_profile(client, user_id):
    data = await client.fetch_user(user_id)
    return data["name"]

async def test_get_profile():
    client = MagicMock()
    client.fetch_user.return_value = {"name": "Аня"}
    assert await get_profile(client, 1) == "Аня"

Тест падает: TypeError: object dict can't be used in 'await' expression. Как починить?

  • Использовать AsyncMock: его вызов возвращает корутину для await
  • Убрать await из get_profile — в тестах он не нужен
  • Задать return_value через side_effect вместо присваивания
  • Обернуть return_value в список: [{"name": "Аня"}]

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела