I'm having trouble replacing a function from a different module with another function and it's driving me crazy.
Let's say I have a module bar.py that looks like this:
from a_package.baz import do_something_expensive
def a_function():
print do_something_expensive()
And I have another module that looks like this:
from bar import a_function
a_function()
from a_package.baz import do_something_expensive
do_something_expensive = lambda: 'Something really cheap.'
a_function()
import a_package.baz
a_package.baz.do_something_expensive = lambda: 'Something really cheap.'
a_function()
I would expect to get the results:
Something expensive!
Something really cheap.
Something really cheap.
But instead I get this:
Something expensive!
Something expensive!
Something expensive!
What am I doing wrong?