У меня есть файл Python, который я хочу проверить (my_code.py):
import some_module
if some_module.DO_IMPORT:
import other_module
def my_func(self):
print(some_module.DO_IMPORT)
if some_module.DO_IMPORT:
print(other_module.OTHER_VAR)
return true
return false
Вот мой тестовый класс (test_my_code.py):
from unittest.mock import patch, Mock
import my_code
class TestMyCode(self):
@patch('my_code.other_module', OTHER_VAR='Other Var')
@patch('my_code.some_module', DO_IMPORT=True)
def_test_my_func(self, *_):
ret = my_code.my_func()
self.assertTrue(ret)
Это выдает ошибку:
NameError: name 'other_module' is not defined
Даже если я пропатчил some_module.DO_IMPORT, чтобы вернуть True, он не импортирует other_module. (Я уверен в этом, потому что some_module.DO_IMPORT печатает True). Фактическое значение some_module.DO_IMPORT установлено в False. Я могу исправить это, но импорт не работает. Как заставить это работать?