mirror of
https://github.com/zulip/zulip.git
synced 2025-11-01 12:33:40 +00:00
rate_limit: Improve dummy request objects in RateLimitTestCase.
Django always sets request.user to a UserProfile or AnonymousUser instance, so it's better to mimic that in the tests where we pass a dummy request objects for rate limiter testing purposes.
This commit is contained in:
committed by
Tim Abbott
parent
699c4e8549
commit
934bdb9651
@@ -796,6 +796,7 @@ def rate_limit(domain: str='api_by_user') -> Callable[[ViewFuncT], ViewFuncT]:
|
||||
# TODO: implement per-IP non-authed rate limiting
|
||||
return func(request, *args, **kwargs)
|
||||
|
||||
assert isinstance(user, UserProfile)
|
||||
rate_limit_user(request, user, domain)
|
||||
|
||||
return func(request, *args, **kwargs)
|
||||
|
||||
@@ -7,6 +7,7 @@ from unittest import mock
|
||||
|
||||
import orjson
|
||||
from django.conf import settings
|
||||
from django.contrib.auth.models import AnonymousUser
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.http import HttpRequest, HttpResponse
|
||||
|
||||
@@ -619,6 +620,7 @@ class RateLimitTestCase(ZulipTestCase):
|
||||
class Request:
|
||||
client = Client()
|
||||
META = {'REMOTE_ADDR': '127.0.0.1'}
|
||||
user = AnonymousUser()
|
||||
|
||||
req = Request()
|
||||
|
||||
@@ -641,6 +643,7 @@ class RateLimitTestCase(ZulipTestCase):
|
||||
class Request:
|
||||
client = Client()
|
||||
META = {'REMOTE_ADDR': '3.3.3.3'}
|
||||
user = AnonymousUser()
|
||||
|
||||
req = Request()
|
||||
|
||||
@@ -664,7 +667,7 @@ class RateLimitTestCase(ZulipTestCase):
|
||||
class Request:
|
||||
client = Client()
|
||||
META = {'REMOTE_ADDR': '3.3.3.3'}
|
||||
user = 'stub' # any non-None value here exercises the correct code path
|
||||
user = self.example_user("hamlet")
|
||||
|
||||
req = Request()
|
||||
|
||||
@@ -687,7 +690,7 @@ class RateLimitTestCase(ZulipTestCase):
|
||||
class Request:
|
||||
client = Client()
|
||||
META = {'REMOTE_ADDR': '3.3.3.3'}
|
||||
user = 'stub' # any non-None value here exercises the correct code path
|
||||
user = self.example_user("hamlet")
|
||||
|
||||
req = Request()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user