Python Mocking einer Funktion aus einem importierten Modul

| | | | | | | | | | |

Ich möchte verstehen, wie man eine Funktion aus einem importierten Modul @patch.

Hier bin ich bisher.

app/mocking.py:

from app.my_module import get_user_name def test_method(): get_user_name() zurückgeben if __name__ == "__main__": print "Starting Program... " test_method() 

app/my_module/__init__.py:

def get_user_name(): return "Unmocked User" 

test/mock-test.py:

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

Das funktioniert nicht wie ich es erwarten würde. Das „gepatchte“ Modul gibt einfach den ungemockten Wert von get_user_name zurück. Wie verspotte ich Methoden aus anderen Paketen, die ich in einen zu testenden Namespace importiere?