Skip to content

Commit 1892d9a

Browse files
committed
Add test
1 parent 07fd99e commit 1892d9a

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

django_ratelimit/tests.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@
77
from django.utils.decorators import method_decorator
88
from django.views.generic import View
99

10+
from rest_framework.decorators import api_view
11+
from rest_framework.test import APIRequestFactory
12+
1013
from django_ratelimit.decorators import ratelimit
1114
from django_ratelimit.exceptions import Ratelimited
1215
from django_ratelimit.core import (get_usage, is_ratelimited,
1316
_split_rate, _get_ip)
1417

1518

1619
rf = RequestFactory()
20+
rest_rf = APIRequestFactory()
1721

1822

1923
class MockUser:
@@ -152,6 +156,17 @@ def view(request):
152156
assert not view(rf.post('/', {'foo': 'b'}))
153157
assert view(rf.post('/', {'foo': 'b'}))
154158

159+
def test_key_data(self):
160+
@api_view(['POST'])
161+
@ratelimit(key='data:foo', rate='1/m', block=False)
162+
def view(request):
163+
return request.limited
164+
165+
assert not view(rest_rf.post('/', {'foo': 'a'}))
166+
assert view(rest_rf.post('/', {'foo': 'a'}))
167+
assert not view(rest_rf.post('/', {'foo': 'b'}))
168+
assert view(rest_rf.post('/', {'foo': 'b'}))
169+
155170
def test_key_header(self):
156171
def _req():
157172
req = rf.post('/')

test_settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
INSTALLED_APPS = (
66
'django_ratelimit',
7+
'rest_framework',
78
)
89

910
RATELIMIT_USE_CACHE = 'default'

tox.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ deps =
1515
django41: Django>=4.1,<4.2
1616
django42: Django>=4.2,<4.3
1717
djangomain: https://github.com/django/django/archive/main.tar.gz
18+
djangorestframework~=3.14.0
1819
pymemcache>=4.0,<5.0
1920
django-redis>=5.2,<6.0
2021
flake8

0 commit comments

Comments
 (0)