Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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 pytest patch.object AssertionError from assert_调用_once_with:assertion期望模拟类的实例作为第一个参数_Python_Flask_Mocking_Pytest_Python Unittest - Fatal编程技术网

Python pytest patch.object AssertionError from assert_调用_once_with:assertion期望模拟类的实例作为第一个参数

Python pytest patch.object AssertionError from assert_调用_once_with:assertion期望模拟类的实例作为第一个参数,python,flask,mocking,pytest,python-unittest,Python,Flask,Mocking,Pytest,Python Unittest,我正在学习unittest.mock,在将mock.patch.object用作装饰器时遇到了问题 我的方法如下所示: @mock.patch.object(app.jira.jira\u client.jira,'search\u users',autospec=True) def test_my_func(自我、模拟搜索用户): 用户电子邮件地址:user@example.com' jira_user=mock.mock() jira_user.displayName='name' mock

我正在学习
unittest.mock
,在将
mock.patch.object
用作装饰器时遇到了问题

我的方法如下所示:

@mock.patch.object(app.jira.jira\u client.jira,'search\u users',autospec=True)
def test_my_func(自我、模拟搜索用户):
用户电子邮件地址:user@example.com'
jira_user=mock.mock()
jira_user.displayName='name'
mock_search_users.return_value=[jira_user]
...
...
mock\u search\u users.assert\u调用了一次(user=user\u email,maxResults=1)
...
我得到的错误是:

E           AssertionError: expected call not found.
E           Expected: search_users(user='user@example.com', maxResults=1)
E           Actual: search_users(<jira.client.JIRA object at 0x1103e43a0>, user='user@example.com', maxResults=1)
E断言错误:未找到预期调用。
E应为:搜索用户(用户=)user@example.com,maxResults=1)
E实际:搜索用户(,用户=)user@example.com,maxResults=1)
我不明白为什么它需要JIRA对象引用作为断言的一部分。我一直在研究其他一些问题,比如说,声称这是不可能的,比如方法,以及文档,但我不清楚我需要改变什么

文档中的这一行似乎很相关,但我不确定该如何处理它:

如果patch()用作修饰符,并且省略了new,则创建的mock将作为额外参数传递给修饰函数

我也试过:

  • 修补
    jira.client.jira
    而不是导入该路径(
    app.jira.jira\u client.jira
    )但这不会改变结果
  • 使用上下文管理器而不是装饰器
文档似乎表明这在实例方法(而不仅仅是类方法)中是可能的:

有什么建议吗