Python Een functie uit een geïmporteerde module bespotten

|

Ik wil begrijpen hoe ik een functie uit een geïmporteerde module @patch.

Dit is waar ik tot nu toe ben.

app/mocking.py:

van app.my_module import get_user_name def test_method(): return get_user_name() if __name__ == "__main__": print "Startprogramma... " test_method() 

app/my_module/__init__.py:

def get_user_name(): return "Unmocked User" 

test/mock-test.py:

import unittest van app.mocking import test_method def mock_get_user(): return "Mocked This Silly" @patch("app.my_module.get_user_name") class MockingTestTestCase(unittest.TestCase): def test_mock_stubs(self, mock_method): mock_method.return_value = "Mocked This Silly") ret = test_method() self.assetEqual (ret, "Mocked This Silly") if __name__ == "__main__": unittest.main() 

Dit werkt niet zoals ik zou verwachten. De "gepatchte" module retourneert eenvoudigweg de niet-gemockte waarde van get_user_name. Hoe bespot ik methoden van andere pakketten die ik importeer in een naamruimte die wordt getest?