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.

Community
  • 1
  • 1
ustun
  • 6,941
  • 5
  • 44
  • 57

1 Answers1

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.