Ложная локальная функция из другого файла - PullRequest
0 голосов
/ 02 июля 2019

Мне нужно исправить функцию, импортированную из того же файла, содержащую другую функцию, которую я хочу протестировать, но она не работает = /.

# funcs.py

def func_one():
    return 1


def func_two():
   return func_one() + 2
from .funcs import func_two

class TestFunc(TestCase):
    def test_func_two(self):
        with patch('func_one', 0):
            result = func_two()

result должно быть два, но я получил ошибку с тестом:

TypeError: Need a valid target to patch. You supplied: 'func_one'

1 Ответ

1 голос
/ 03 июля 2019

Мне нужно импортировать абсолютный путь к функции:

from .funcs import func_two

class TestFunc(TestCase):
    def test_func_two(self):
        @patch('funcs.func_one', MagicMock(return_value=0)):
            result = func_two()

Где funcs.func_one - это полный путь к модулю + имя функции .

...