Example #1
0
    def test_purge_all_blocked_requests(self):
        assert not BlockedRequest.objects.all().exists()
        blocked_requests._requests_data.clear()
        req_1 = format_request(self.factory.get("/"), 429)
        req_2 = format_request(self.factory.get("/login/"), 429)
        blocked_requests.lpush(req_1)
        blocked_requests.lpush(req_2)

        PersistBlockedRequestsCommand.execute()

        assert 2 == BlockedRequest.objects.count()
        assert BlockedRequest.objects.filter(path="/").exists()
        assert BlockedRequest.objects.filter(path="/login/").exists()
Example #2
0
def test_fail_safe_if_no_remote_addr(request_factory):
    request = request_factory.get("/", HTTP_FOO=42, HTTP_BAR="data")
    request.META.pop("REMOTE_ADDR")

    data = format_request(request, 200)

    assert "" == data["http"]["remote-addr"]
Example #3
0
def test_logging_enqueue_message_to_be_processed(request_factory):
    blocked_requests.clear()

    request = request_factory.get("/", HTTP_FOO=42, HTTP_BAR="data")
    log_blocked_request(request, 429)

    assert 1 == len(blocked_requests)
    assert format_request(request, 429) == blocked_requests.lpop()
    assert 0 == len(blocked_requests)
Example #4
0
def test_format_simplest_request(request_factory):
    request = request_factory.get("/")
    data = format_request(request, 200)

    assert [] == data["query_string"]
    assert "/" == data["path"]
    assert [("Cookie", "")] == data["headers"]
    assert 200 == data["response_status_code"]
    assert data["user_id"] is None
    assert {"remote-addr": "127.0.0.1", "HTTP_COOKIE": ""} == data["http"]
Example #5
0
def test_format_custom_headers(request_factory):
    request = request_factory.get("/", HTTP_FOO=42, HTTP_BAR="data")
    data = format_request(request, 200)
    headers = data["headers"]

    assert 3 == len(headers)
    assert ("Foo", 42) in headers
    assert ("Bar", "data") in headers
    assert ("Cookie", "") in headers
    assert 42 == data["http"]["HTTP_FOO"]
    assert "data" == data["http"]["HTTP_BAR"]
Example #6
0
def test_format_user_id_for_authenticated_request(request_factory):
    request = request_factory.get("/")
    request.user = Mock(get_user_model(), id=42)
    data = format_request(request, 200)

    assert 42 == data["user_id"]
Example #7
0
def test_format_request_query_string(request_factory):
    request = request_factory.get("/", data={"arg1": "foo", "arg2": "bar"})
    data = format_request(request, 200)

    assert [("arg1", "foo"), ("arg2", "bar")] == data["query_string"]
Example #8
0
 def setUp(self):
     request = RequestFactory().get("/",
                                    data={"qs": "v1"},
                                    HTTP_CUSTOM="foo",
                                    HTTP_USER_AGENT="agent")
     self.request_data = format_request(request, 429)