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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With