Python simulando una función de un módulo importado

| | | | | | | | | | |

Quiero entender cómo @patch una función de un módulo importado.

Aquí es donde estoy hasta ahora.

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(): devuelve "Usuario no burlado" 

test/mock-test.py:

importar unittest from app.mocking import test_method def mock_get_user(): return "Se burló de esta tontería" @patch("app.my_module.get_user_name") class MockingTestTestCase(unittest.TestCase): def test_mock_stubs(self, mock_method): mock_method.return_value = "Se burló de esta tontería") ret = test_method() self.assertEqual (ret, "Mocked This Silly") if __name__ == "__main__": unittest.main() 

Esto no funciona como esperaba. El módulo "parcheado" simplemente devuelve el valor no burlado de get_user_name. ¿Cómo simule métodos de otros paquetes que estoy importando a un espacio de nombres bajo prueba?