在同一函数中使用pytest和模拟两个响应

时间:2020-07-07 04:25:12

标签: mocking pytest

我需要测试一个可以做出两个响应的函数。

我的函数示例:

def another_example_response(param):
    r = requests.get("my_url_test")
    return r.json()

def example_response(param):
    url = "test_url"
    r = requests.post(url + "another_complement", data="")
    return another_example_response(param)
    
    
def my_funcion(...):
    my_test = example_response()
    ...
    return Response(status=status.HTTP_200_OK)   

我以这种方式编写了测试(在同一模拟中使用两个有效负载):

   @pytest.fixture
    def mock_payload():
        mock_example = Mock()
        mock_example.json.return_value = {
            "field_for_another_example_response": [{"id": 1}, {"id": 2}], 
            "field_for_example_response": "test"
        }
        my_file.requests.get = Mock(return_value=mock_example)

以上测试正在运行。我可以模拟两个响应(获取和发布),但是我不知道这是否是最好的方法。

我想将有效载荷分开。有可能吗?

0 个答案:

没有答案