跨测试持久化的Python模拟返回值

跨测试持久化的Python模拟返回值,python,unit-testing,mocking,Python,Unit Testing,Mocking,我有两个类似这样的测试: @mock.patch('Shared.ad_service.ADService') def test_case1(self, ad_service_mock): ad_service_mock.return_value.authenticate_request.return_value = {} from Import import main response = main() assert response.status_code

我有两个类似这样的测试:

@mock.patch('Shared.ad_service.ADService')
def test_case1(self, ad_service_mock):
    ad_service_mock.return_value.authenticate_request.return_value = {}

    from Import import main
    response = main()

    assert response.status_code == 200

@mock.patch('Shared.ad_service.ADService')
def test_case2(self, ad_service_mock):
    ad_service_mock.return_value.authenticate_request.return_value = None

    from Import import main
    response = main()

    assert response.status_code == 400
我的问题是,由于某种原因,当运行测试时,第二个测试失败,因为authenticate_request的返回值为{},即使我将其设置为None(我有一个print语句显示方法的输出)。完成第一次测试后,一切都按预期进行。我认为mock.patch应该在每次测试后自动取消补丁,即使没有,我也不确定为什么我的第二个任务至少不会覆盖第一个任务。任何想法都会有帮助,我觉得我错过了一些明显的东西