Python se moquant d’une fonction à partir d’un module importé

| | | | | | | | | | |

Je veux comprendre comment @patch une fonction à partir d'un module importé.

Voilà où j'en suis jusqu'à présent.

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() : renvoie "Utilisateur non moqué" 

test/mock-test.py :

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

Cela ne fonctionne pas comme je m'y attendais. Le module "patché" renvoie simplement la valeur non moquée de get_user_name. Comment puis-je simuler des méthodes d'autres packages que j'importe dans un espace de noms en cours de test ?