У меня есть пользовательская функция, определенная в
custom_file.py
import csv
def write_dict_to_csv(columns=None, file_name=None, data=None):
try:
with open(file_name, "w") as f:
writer = csv.DictWriter(f, fieldnames=columns)
writer.writeheader()
в test_file.py Я хочу вернуть фиксированнуюзначение, когда вызывается writer.writeheader()
.
from custom_file import write_dict_to_csv
class TestMyFunctions(unittest.TestCase):
@patch('custom_file.csv.DictWriter.writeheader')
def test_write_dict_to_csv(self, mock_writeheader):
custom_file.write_dict_to_csv(file_name='fileName')
self.assertTrue(mock_writeheader.called)
Но это возвращает TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType
Как мне высмеивать csv.DictWriter.writeheader()
, когда он импортируется из внешней библиотеки в custom_file
,который я затем тестирую из отдельного test_file
?
Я подумал, что это будет близко к правильному, так как мы должны исправлять то, что ищется, а не то, где оно определено.