Скорее всего, вы патчите что-то, что в случае вызова через
manage.py
импортится до того, как запатчится.
Скорее всего, вы пытаетесь пропатчить исходную сущность в сторонней либе (или даже стандартной), а надо патчить то, что импортируете к себе в модуль, сущность из которого тестируете.
Например, у вас есть ф-я
mypackage.mymodule.foo
, где используется
urlopen
из
urllib
:
from urllib.request import urlopen
def foo():
...
И для этой ф-и вы хотите написать тесты, запатчив вызов
urlopen
.
Потенциально нерабочий вариант:
@patch("urllib.request.urlopen")
def test(urlopen):
...
Точно рабочий вариант:
@patch("mypackage.mymodule.urlopen")
def test(urlopen):
...
UPD: а вообще, видеть бы код теста и самой тестируемой ф-и