Python Verspotten einer Funktion aus einem importierten Modul

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

Hier bin ich soweit.

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()

Das machtnicht arbeite wie ich es erwarten würde. Das "gepatchte" Modul gibt einfach den nicht gespielten Wert von zurückget_user_name. Wie verspotte ich Methoden aus anderen Paketen, die ich in einen zu testenden Namespace importiere?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage