How should I mock patch.object() a function in a module?
home_dir() is what I want to test.
my_info.py
from pathlib import Path
def home_dir():
return str(Path.home())
if __name__ == "__main__":
print(home_dir())
test_my_info.py
from unittest import mock
import my_info
def test_my_home_returns_correct_value():
with mock.patch.object(my_info, "home_dir", autospec=True) as mock_home_dir:
my_info.home_dir.return_value = "/users/fake_user" # 1.1
# mock_home_dir.return_value = "/users/fake_user" # 1.2
value = my_info.home_dir() # 2.1
# value = my_info.home_dir.return_value # 2.2
# value = mock_home_dir() # 2.3
# value = mock_home_dir.return_value # 2.4
assert value == "/users/fake_user"
For 1.x
should I use my_info.home_dir.return_value or mock_home_dir.return_value to set the return value?
For 2.x
should I use my_info.home_dir
or mock_home_dir
to retrieve the return value?
should I use ()
or return_value
to retrieve the return value?