Commit 63d086ea by markotibold

added some throttling tetst. Can't get per-user-throttling testing to work though. :( any help?

parent f708b1a1
import time
from django.conf.urls.defaults import patterns from django.conf.urls.defaults import patterns
from django.test import TestCase from django.test import TestCase
from django.utils import simplejson as json from django.utils import simplejson as json
from django.contrib.auth.models import User
from djangorestframework.compat import RequestFactory from djangorestframework.compat import RequestFactory
from djangorestframework.views import View from djangorestframework.views import View
...@@ -18,21 +21,38 @@ urlpatterns = patterns('', ...@@ -18,21 +21,38 @@ urlpatterns = patterns('',
(r'^$', MockView.as_view()), (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()
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)
#class ThrottlingTests(TestCase): def test_request_throttling_expires(self):
# """Basic authentication""" """Ensure request rate is limited for a limited duration only"""
# urls = 'djangorestframework.tests.throttling' for dummy in range(3):
# response = self.client.get('/')
# def test_requests_are_throttled(self): response = self.client.get('/')
# """Ensure request rate is limited""" self.assertEqual(503, response.status_code)
# for dummy in range(3): time.sleep(1)
# response = self.client.get('/') response = self.client.get('/')
# response = self.client.get('/') self.assertEqual(200, response.status_code)
#
# 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment