Высмеивать функцию, вызываемую несколько раз с помощью pymox

У меня есть функция в коде, который вызывается дважды.get_user_settingsкак только он вызывается в функции, которую я тестирую, и во второй раз какой-то другой модуль имеет функцию, которая вызывает его снова.

Я издевался над ним, используя pymox следующим образом:

mox = mox.Mox()
mox.StubOutWithMock(utils, "get_user_settings")
utils.get_user_settings("config").AndReturn(mocked_data)

mocking работает для первого вызова из моего тестового кода, но когда он вызывается снова в модуле utils, я получаю ошибку ниже

======================================================================
FAIL: test_uncommited_changes (test_scmCommandBase.TestSCMCommandBase)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "/local/ciasto/git/myproject/tests/test_scmCommandBase.py", line
79, in test_uncommited_changes
     branch.rebase()
   File "/local/ciasto/git/myproject/bin/local/cmds/update/core.py",
line 81, in rebase
     _utils.save_branch_signature_to_config(user_branch)
   File "/local/ciasto/git/myproject/bin/local/config/utils.py", line
146, in save_branch_signature_to_config
     content = get_user_settings(project_config)
   File "/sw/thirdparty/pymox/0.7.6-bfx1/lib/mox.py", line 886, in __call__
     return mock_method(*params, **named_params)
   File "/sw/thirdparty/pymox/0.7.6-bfx1/lib/mox.py", line 1193, in __call__
     expected_method = self._VerifyMethodCall()
   File "/sw/thirdparty/pymox/0.7.6-bfx1/lib/mox.py", line 1246, in
_VerifyMethodCall
     expected = self._PopNextMethod()
   File "/sw/thirdparty/pymox/0.7.6-bfx1/lib/mox.py", line 1232, in
_PopNextMethod
     raise exception
UnexpectedMethodCallError: Unexpected method call
function.__call__('/tmp/tmpbNI_L4/.myproject') -> None

0 ответов

Другие вопросы по тегам