インポートされたモジュールから関数をモックするPython

| | | | | | | | | | |

インポートしたモジュールから関数を@patchする方法を理解したい。

これまでのところここにいる。

app / mocking.py:

  from app.my_module import get_user_name def test_method():return get_user_name()if __name__ == "__main __":print "Starting Program .. .. "test_method() 

app / my_module / __ init __。py:

  def get_user_name():return" Unmocked User "  

test / mock-test.py:

  import unittest from 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.assertEqual (ret、 "Mocked This Silly")if __name__ == "__main __":unittest.main() 

これは期待どおりに機能しません。 「パッチが適用された」モジュールは、モックされていない get_user_nameの値を返すだけです。テスト対象の名前空間にインポートしている他のパッケージのメソッドをモックするにはどうすればよいですか?