diff options
| author | markotibold | 2011-06-10 23:53:32 +0200 |
|---|---|---|
| committer | markotibold | 2011-06-10 23:53:32 +0200 |
| commit | 63d086ea11a0d7f713086a48e1c9da38aa300c6a (patch) | |
| tree | 8b1c4ea64fd1093d419f286b2d290dc3ae547463 /djangorestframework/tests/throttling.py | |
| parent | f708b1a11c99f88db821567648b688445f30e986 (diff) | |
| download | django-rest-framework-63d086ea11a0d7f713086a48e1c9da38aa300c6a.tar.bz2 | |
added some throttling tetst. Can't get per-user-throttling testing to work though. :( any help?
Diffstat (limited to 'djangorestframework/tests/throttling.py')
| -rw-r--r-- | djangorestframework/tests/throttling.py | 54 |
1 files changed, 37 insertions, 17 deletions
diff --git a/djangorestframework/tests/throttling.py b/djangorestframework/tests/throttling.py index a8f08b18..189f3353 100644 --- a/djangorestframework/tests/throttling.py +++ b/djangorestframework/tests/throttling.py @@ -1,6 +1,9 @@ +import time + from django.conf.urls.defaults import patterns from django.test import TestCase from django.utils import simplejson as json +from django.contrib.auth.models import User from djangorestframework.compat import RequestFactory from djangorestframework.views import View @@ -18,21 +21,38 @@ urlpatterns = patterns('', (r'^$', MockView.as_view()), ) +class ThrottlingTests(TestCase): + urls = 'djangorestframework.tests.throttling' + + def setUp(self): + time.sleep(1) # make sure throttle is expired before next test + + def test_requests_are_throttled(self): + """Ensure request rate is limited""" + for dummy in range(3): + response = self.client.get('/') + response = self.client.get('/') + self.assertEqual(503, response.status_code) + + def DISABLEDtest_request_throttling_is_per_user(self): + #Can not login user.....Dunno why... + """Ensure request rate is only limited per user, not globally""" + User.objects.create_user('testuser', 'test', 'foo@bar.baz').save() + User.objects.create_user('another_testuser', 'test', 'foo@bar.baz').save() -#class ThrottlingTests(TestCase): -# """Basic authentication""" -# urls = 'djangorestframework.tests.throttling' -# -# def test_requests_are_throttled(self): -# """Ensure request rate is limited""" -# for dummy in range(3): -# response = self.client.get('/') -# response = self.client.get('/') -# -# def test_request_throttling_is_per_user(self): -# """Ensure request rate is only limited per user, not globally""" -# pass -# -# def test_request_throttling_expires(self): -# """Ensure request rate is limited for a limited duration only""" -# pass + self.assertTrue(self.client.login(username='testuser', password='test')) + for dummy in range(3): + response = self.client.get('/') + self.client.logout() + self.assertTrue(self.client.login(username='another_testuser', password='test')) + self.assertEqual(200, response.status_code) + + def test_request_throttling_expires(self): + """Ensure request rate is limited for a limited duration only""" + for dummy in range(3): + response = self.client.get('/') + response = self.client.get('/') + self.assertEqual(503, response.status_code) + time.sleep(1) + response = self.client.get('/') + self.assertEqual(200, response.status_code) |
