TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #5049 668
Как проверить, что мок заменил нужную зависимость

Если service.py делает from client import fetch, функция использует имя service.fetch. Патч client.fetch не заменит уже импортированную ссылку: тест может продолжить обращаться к настоящему клиенту.

Правило patch — заменять имя там, где тестируемый код его ищет. Для этого примера нужен patch("service.fetch", autospec=True). autospec проверяет совместимость вызова с сигнатурой зависимости и помогает поймать лишний аргумент.

Для async-зависимости важно проверить await: assert_called_once_with доказывает только вызов, а assert_awaited_once_with — ожидание корутины. Дополнительно проверяйте возвращённое значение или эффект работы сервиса. Один счётчик вызовов не показывает, что результат зависимости был использован правильно.

#python #тестирование
  • 👍 2
More from @zen_of_python
  1. Oct 11, 2026Почему копия контекста не делает словарь отдельным contextvars помогает хранить request ID…
  2. Oct 11, 2026Почему короткие паузы сборщика мусора обходятся памятью В CPython подсчёт ссылок освобожда…
  3. Oct 10, 2026Post #5048
  4. Oct 10, 2026Showboat и Rodney помогают показать работу ИИ-агента Саймон Уиллисон собирает демонстрации…
  5. Oct 10, 2026Почему max_workers не ограничивает очередь задач ThreadPoolExecutor(max_workers=8) разреша…
  6. Oct 10, 2026Как измерять время async-функции через декоратор Обычная обёртка может вызвать async-функц…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →