У меня есть следующий модуль, для которого я пытаюсь написать модульные тесты.
import myModuleWithCtxMgr
def myFunc(arg1):
with myModuleWithCtxMgr.ctxMgr() as ctxMgr:
result = ctxMgr.someFunc()
if result:
return True, result
return False, None
Модульные тесты, над которыми я работаю, выглядят так.
import mock
import unittest
import myModule as myModule
class MyUnitTests(unittest.TestCase):
@mock.patch("myModuleWithCtxMgr.ctxMgr")
def testMyFunc(self, mockFunc):
mockReturn = mock.MagicMock()
mockReturn.someFunc = mock.Mock(return_value="val")
mockFunc.return_value = mockReturn
result = myModule.myFunc("arg")
self.assertEqual(result, (True, "val"))
Тест не пройден, потому что результат [0] = magicMock (), а не возвращаемое значение (я думал) настроен.
Я пробовал несколько разных вариантов теста, но я не могу высмеять возвращаемое значение ctxMgr.someFunc (). Кто-нибудь знает, как мне это сделать?
Спасибо!