Suppose I have files main.py and common.py in my root directory. These represent third party modules which I would not like to touch for the time being. Suppose I also have a test.py file which I’d like to use to test main.py.
common.py contains the following:
def hello():
print("hello")
main.py contains the following:
from common import hello
hello()
Is there a way to monkey patch the hello function in test.py such that importing main.py will use the mocked function? For instance, I’d like to monkey patch hello to print out goodbye.
>Solution :
Pretty straightforward:
import common
common.hello = lambda: print("goodbye")
import main