Я пытаюсь проверить модуль:
пакет / module.py
DATA_PATH = os.path.join(os.path.dirname(__file__), "data")
class SomeClass:
def __init__(self):
self.filename = os.path.join(DATA_PATH, "ABC.txt")
в тестах / module_test.py
Я пытаюсь сделать
from package import module
@patch("package.module.DATA_PATH", "data_path_here") # doesn't work
class TestSomeClass(unittest.TestCase):
def setUp(self):
module.DATA_PATH = "data_path_here" # doesn't work
self.obj= SomeClass()
@patch("package.module.DATA_PATH", "data_path_here") # doesn't work either
def test_constructor(self):
self.assertEqual(r"data_path_here\ABC.txt", self.obj.filename)
но DATA_PATH по-прежнему не отключен. Я думаю, что я перепробовал все возможные варианты для его макета, но он по-прежнему возвращает оригинальный путь вместо «data_path_here»
Что я делаю не так?
EDIT:
Это не дубликат Изменение глобальных переменных в инфраструктуре юнит-тестов Python
Потому что это решение не работает