7

I know how to mock methods in Python using flexmock, like

 flexmock(subprocess).should_receive('call').replace_with(my_func)

How does one mock functions outside objects, or for example glob, which was imported via from glob import glob instead of import glob?

I have found mocking functions using python mock as a similar question, but it doesn't answer my question.

1 Answer 1

8

Since you're importing the glob() function directly into the local namespace you have to get a handle on the current module.

from flexmock import flexmock
from glob import glob
import sys

flexmock(sys.modules[__name__]).should_receive('glob')

You could also do an "import glob as glob_module" or something along those lines to avoid the sys.modules lookup.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.