首页 > 解决方案 > 使用响应和 pytest 模拟 query_params

问题描述

我需要一些帮助来使用响应和 pytest 来模拟 query_param。

我有这样的看法:

@api_view(["GET"])
@csrf_exempt
@permission_classes((AllowAny,))
def get_code_and_extra(request):
    code = request.GET.get("code", "")
    extra = request.GET.get("extra", "")
    if code and extra:
        # do something
        return HttpResponse("", status=200)
    return HttpResponse("", status=400)

我的测试嘲笑:

    @responses.activate
    def test_receive(self, db, client):
        responses.add(
            responses.GET,
            "https://test.com/?code=some-code&extra=extra",
            json={},
            status=200,
            content_type="application/json",
        )
        resp = client.get(reverse("my-url"))
        assert resp.status_code == 200    

当我运行我的测试工作时,视图没有收到 query_params。我想通过它,以便测试按预期工作。

更多上下文:此视图用作从另一个站点接收这些参数的 webhook。该视图正在运行,但我想进行此测试。

标签: djangodjango-rest-frameworkmockingpytestpython-responses

解决方案


推荐阅读