Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python reset_mock()获得意外的关键字参数';返回u值'—;为什么?_Python_Unit Testing_Mocking - Fatal编程技术网

Python reset_mock()获得意外的关键字参数';返回u值'—;为什么?

Python reset_mock()获得意外的关键字参数';返回u值'—;为什么?,python,unit-testing,mocking,Python,Unit Testing,Mocking,根据文档,reset\u mock接受返回值和副作用关键字参数。但是当我尝试使用它时,我得到一个类型错误: 来自unittest.mock导入修补程序的 进口大熊猫 def foo(): 返回pandas.read\u csv(“/dev/null”) @补丁(“pandas.read_csv”,autospec=True) def测试_foo(pr): pr.return_值=42 foo() pr.reset\u mock(返回值=真) foo() 使用pytest运行时提供: =====

根据文档,
reset\u mock
接受
返回值
副作用
关键字参数。但是当我尝试使用它时,我得到一个类型错误:

来自unittest.mock导入修补程序的

进口大熊猫
def foo():
返回pandas.read\u csv(“/dev/null”)
@补丁(“pandas.read_csv”,autospec=True)
def测试_foo(pr):
pr.return_值=42
foo()
pr.reset\u mock(返回值=真)
foo()
使用
pytest
运行时提供:

============================= test session starts ==============================
platform linux -- Python 3.7.3, pytest-5.3.0, py-1.8.0, pluggy-0.13.0
rootdir: /tmp
plugins: mock-1.12.1, cov-2.8.1
collected 1 item

mwe17.py F                                                               [100%]

=================================== FAILURES ===================================
___________________________________ test_foo ___________________________________

pr = <function read_csv at 0x7fdeff5ddbf8>

    @patch("pandas.read_csv", autospec=True)
    def test_foo(pr):
        pr.return_value = 42
        foo()
>       pr.reset_mock(return_value=True)
E       TypeError: reset_mock() got an unexpected keyword argument 'return_value'

mwe17.py:11: TypeError
============================== 1 failed in 2.83s ===============================
=================================================测试会话开始==============================
平台linux——Python 3.7.3、pytest-5.3.0、py-1.8.0、pluggy-0.13.0
rootdir:/tmp
插件:mock-1.12.1,cov-2.8.1
收集1项
mwe17.py F[100%]
======================================================故障===================================
___________________________________考夫___________________________________
pr=
@补丁(“pandas.read_csv”,autospec=True)
def测试_foo(pr):
pr.return_值=42
foo()
>pr.reset\u mock(返回值=真)
E TypeError:reset\u mock()获得意外的关键字参数“return\u value”
mwe17.py:11:类型错误
===========================================1在2.83秒内失败===============================
当我模拟
os.mkdir
而不是
pandas.read\u csv
时,它确实有效


为什么当模拟一个函数时,
reset\u mock
无法接受此关键字参数,而模拟另一个函数时会接受此关键字参数

patch
调用中删除
autospec=True
为我解决了这个问题