KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to Mock a function (that returns some external content) using the python mock module . I'm having some trouble mocking functions that are imported into a module. For example, in util.py I have def get_content(): return "stuff" I want to mock util.get_content so that it returns something else. I am trying this: util.get_content=Mock(return_value="mocked stuff") If get_content gets invoked inside another module, it never actually seems to return the mocked object. Am I missing something in terms of how to use Mock ? Note that if I invoke the following, things work correctly: >>> util.get_content=Mock(return_value="mocked stuff") >>> util.get_content() "mocked stuff" However, if get_content is called from inside another module, it invokes the original function instead of the mocked version: >>> from mymodule import MyObj >>> util.get_content=Mock(return_value="mocked stuff") >>> m=MyObj() >>> m.func() "stuff" Contents of mymodule.py from util import get_content class MyObj: def func(): get_content() So I guess my question is - how do I get invoke the Mocked version of a function from inside a module that I call? It appears that the from module import function may be to blame here, in that it doesn't point to the Mocked function.
Tags (comma-separated)
Save Edits
Cancel