如何解决python清除unittest.mock的完整历史记录
我正在使用unittest.mock
,看来它泄漏了很多对象。
我确保始终使用with
语句,例如with mock.patch.object(target=...):
但是我可以看到许多unittest.mock._CallList
,unittest.mock._CallList
,unittest.mock.MagicProxy
类型的对象。
是否有一种方法可以在执行每个测试或类似的测试后清除它?
解决方法
我没有完全回答你的问题。
因此,在模拟对象之后,您发现有很多调用它的对象吗?然后要重置?
您可以使用reset_mock
这里是一个例子:
创建script.py
import boto3
client = boto3.client("ssm")
client2 = boto3.client("sqm")
创建test_a.py
from unittest.mock import patch,MagicMock
@patch("boto3.client")
def test_boto(boto3):
import script
assert len(boto3.mock_calls) == 2
boto3.reset_mock()
assert len(boto3.mock_calls) == 0
运行python3 -m pytest
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。