Шпионские цепочки функций в Python - PullRequest
1 голос
/ 25 мая 2020

Я пытаюсь выполнить модульное тестирование функции, вызывающей две другие функции изнутри. Похоже, что следующие

class A(BaseClass):
    def functionA(self, var_a, var_b):
        return self.another_fn_a(var_a).another_fn_b(var_b)

another_fn_a и another_fn_b являются частью базового класса, который расширяется этим классом, и возвращают тот же самый класс.

Теперь я пытаюсь чтобы проверить мой functionA, чтобы увидеть, что он вызывает две другие функции с правильным аргументом. Я могу шпионить за another_fn_a, но шпион за another_fn_b, похоже, не работает. Мой тест выглядит следующим образом:

def test_will_funcationA(mocker):
    test_obj = ClassA()

    spy_a = mocker.spy(test_obj, 'another_fn_a')
    spy_b = mocker.spy(test_obj, 'another_fn_b')

    test_obj.functionA("var_1", "var_2")

    spy_a.assert_called_once_with("var_1")
    spy_b.assert_called_once_with("var_2")

Первое утверждение, похоже, работает, однако для второго утверждения я получаю сообщение об ошибке утверждения, в котором говорится, что another_fn_b не был вызван.

Что я здесь делаешь что-то не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...