mymodule.py
def write_df_to_csv(self, df, modified_fn):
new_csv = self.path + "/" + modified_fn
df.to_csv(new_csv, sep=";", encoding='utf-8', index=False)
test_mymodule.py
class TestMyModule(unittest.TestCase):
def setUp(self):
args = parse_args(["-f", "test1"])
self.mm = MyModule(args)
self.mm.path = "Random/path"
self.test_df = pd.DataFrame(
[
["bob", "a"],
["sue", "b"],
["sue", "c"],
["joe", "c"],
["bill", "d"],
["max", "b"],
],
columns=["A", "B"],
)
def test_write_df_to_csv(self):
to_csv_mock = mock.MagicMock()
with mock.patch("project.mymodule.to_csv", to_csv_mock, create=True):
self.mm.write_df_to_csv(self.test_df, "Stuff.csv")
to_csv_mock.assert_called_with(self.mm.path + "/" + "Stuff.csv")
当我运行这个测试时,我会得到:
FileNotFoundError: [Errno 2] No such file or directory: 'Random/path/Stuff.csv'
我正在尝试在我的方法中模拟to_csv
。我的其他测试按预期运行,但是我不确定我在这个测试中做错了什么。我的使用魔法模拟是正确的吗,还是我忽略了其他东西?
project.mymodule.to_csv
和Pandas的DataFrame
的to_csv
方法不是同一个吧? - Thomas