mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-05-22 05:26:08 +03:00
Add couple of basic tests for SimpleRateThrottle (#4800)
This commit is contained in:
parent
b6b2c4bb5b
commit
e9d371f29a
|
@ -3,15 +3,17 @@ Tests for the throttling implementations in the permissions module.
|
||||||
"""
|
"""
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import pytest
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
|
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.settings import api_settings
|
from rest_framework.settings import api_settings
|
||||||
from rest_framework.test import APIRequestFactory
|
from rest_framework.test import APIRequestFactory
|
||||||
from rest_framework.throttling import (
|
from rest_framework.throttling import (
|
||||||
BaseThrottle, ScopedRateThrottle, UserRateThrottle
|
BaseThrottle, ScopedRateThrottle, SimpleRateThrottle, UserRateThrottle
|
||||||
)
|
)
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
|
||||||
|
@ -354,3 +356,20 @@ class XffUniqueMachinesTest(XffTestingBase):
|
||||||
self.view(self.request)
|
self.view(self.request)
|
||||||
self.request.META['HTTP_X_FORWARDED_FOR'] = '0.0.0.0, 7.7.7.7, 2.2.2.2'
|
self.request.META['HTTP_X_FORWARDED_FOR'] = '0.0.0.0, 7.7.7.7, 2.2.2.2'
|
||||||
assert self.view(self.request).status_code == 200
|
assert self.view(self.request).status_code == 200
|
||||||
|
|
||||||
|
|
||||||
|
class SimpleRateThrottleTests(TestCase):
|
||||||
|
|
||||||
|
def test_throttle_raises_error_if_scope_is_missing(self):
|
||||||
|
with pytest.raises(ImproperlyConfigured):
|
||||||
|
SimpleRateThrottle()
|
||||||
|
|
||||||
|
def test_throttle_raises_error_if_rate_is_missing(self):
|
||||||
|
SimpleRateThrottle.scope = 'test'
|
||||||
|
with pytest.raises(ImproperlyConfigured):
|
||||||
|
SimpleRateThrottle()
|
||||||
|
|
||||||
|
def test_parse_rate_returns_tuple_with_none_if_rate_not_provided(self):
|
||||||
|
SimpleRateThrottle.scope = 'anon'
|
||||||
|
rate = SimpleRateThrottle().parse_rate(None)
|
||||||
|
assert rate == (None, None)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user