微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vcrpy 的 record_mode=None 是否保证即使请求是在线程中发出的也不发送 HTTP 请求?

如何解决vcrpy 的 record_mode=None 是否保证即使请求是在线程中发出的也不发送 HTTP 请求?

我正在使用 pytest 测试一些代码并使用 vcrpy 装饰器,如下所示:

@pytest.mark.vcr(record_mode='none')
def test_something():
    make_requests_in_a_thread_and_save_to_queue()
    logged_responses = log_responses_from_queue_in_a_thread()
    assert logged_responses == expected_logged_responses

测试失败,因为 logged_responses 是新响应,这是在 test_something() 期间发出的新 HTTP 请求的结果。

我有一个盒式磁带保存在正确的位置,但这可能无关紧要,因为即使我没有,我也应该得到 vcrpy CassetteError 而不是失败的测试。

record_mode='none' 是否不适用于线程内执行的代码

如果没有,我应该如何解决测试问题?谢谢!

解决方法

我发现了问题所在。我使用的是流 API 而不是发送 http 请求。 record_mode='none' 指的是 http 请求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。