Эта строка
from libs.util import patch_this_method
импортирует объект, который является копией исходной функции, и функция еще не была исправлена.
Тогда перед параметром mock
стоит странный символ *
; на самом деле это не влияет на код, потому что он не используется, и тогда вы получите ожидаемые результаты.
Первый вызов ссылается на исправленную функцию. Другой нет.
Edit:
Что касается вашего вопроса в комментарии, вы не можете не использовать патч-декоратор, использование простого имени, не содержащегося в каком-либо пакете, не подойдет. Из документации патча-декоратора (цель - строка патча):
target должен быть строкой в форме 'package.module.ClassName'. Цель импортируется, а указанный объект заменяется новым, поэтому цель должна импортироваться из среды, из которой вы вызываете patch (). Цель импортируется при выполнении декорированной функции, а не во время декорации.
Но вы можете просто написать:
from unittest.mock import Mock # or MagickMock if you need it
...
patch_this_method = Mock(return_value=200)
А теперь ваши функции будут использовать фиктивную функцию.