I want to test a function that uses joblib's caching functionality.
I am wondering how to skip the cache and call the actual function when performing a unit test using pytest? Is it suitable to mock something like joblib.Memory?
Let's say I have the following function:
from joblib import Memory
memory = Memory(location="cache")
@memory.cache
def func(a):
return a**2
def test_func():
assert func(2) == 4
How am I supposed to mock the caching functionality and force func to be executed everytime I call it from within the test function?
Functions cached by
joblib.Memoryhave a.funcattribute that provides access to the underlying function. See the documentation here. So you could write your test as follows: