Привет, Хабр!
Сегодня разберёмся, почему без autospec=True
ваш безобидный @patch
из unittest.mock
может превратить зелёный репорт в мину замедленного действия.
Смысл patch()
прост: отрезаем внешний мир, подсовываем фейковый объект и гоняем логику изолированно. Но если не включить autospec
, мок превращается в пластилин — к нему прилипает любой метод, любые аргументы, и тесты радостно хлопают ладоши, даже когда в коде опечатка или нарушена сигнатура.