gpt4 book ai didi

python - 如何模拟从我的自定义函数中调用的 `csv.DictWriter.writeheader()` ?

转载 作者:行者123 更新时间:2023-12-01 00:27:24 24 4
gpt4 key购买 nike

我在中定义了一个自定义函数

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应该是字符串,字节,os.PathLike或整数,而不是NoneType

当从外部库导入custom_file时,如何模拟csv.DictWriter.writeheader(),然后我从一个单独的测试文件

我认为这几乎是正确的,因为我们的目的是修补查找事物的位置,而不是定义它的位置。

最佳答案

由于缺少一些导入,您提供的代码无法“按原样”运行,但在解决问题后,一切似乎都正常(测试通过)。这是我运行的代码。我希望它有帮助。

自定义文件.py

import csv


def write_dict_to_csv(columns=None, file_name=None, data=None):
with open(file_name, "w") as f:
writer = csv.DictWriter(f, fieldnames=columns)
writer.writeheader()

测试文件.py

import unittest
from unittest.mock import patch

import custom_file


class TestMyFunctions(unittest.TestCase):

@patch('custom_file.csv.DictWriter.writeheader')
def test_write_dict_to_csv(self, mock_writeheader):
print("Hello")
custom_file.write_dict_to_csv(file_name='fileName')
self.assertTrue(mock_writeheader.called)

关于python - 如何模拟从我的自定义函数中调用的 `csv.DictWriter.writeheader()` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58455571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com