mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 14:03:30 +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