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

Does vcrpy's record_mode=None guarantee no HTTP requests will be sent even if the requests are made in a thread?

我正在使用 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请求。