Added small testing framework for the middleware.

This commit is contained in:
2013-10-13 17:30:31 +01:00
parent e2606e35fd
commit 438874e148
11 changed files with 289 additions and 15 deletions

View File

@@ -1,16 +1,52 @@
"""
This file demonstrates writing tests using the unittest module. These will pass
when you run "manage.py test".
Replace this with more appropriate tests for your application.
"""
from django.test import TestCase
from mock import Mock
from .middleware import IGBMiddleware
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.assertEqual(1 + 1, 2)
class IGBMiddlewareTest(TestCase):
""" Test the IGB Middleware """
def setUp(self):
self.im = IGBMiddleware()
def request_factory(self, meta=None):
rq = Mock(path="/")
rq.method = 'GET'
if meta:
rq.META = meta
return rq
def test_invalid_browser_igb(self):
request = self.request_factory({
'HTTP_USER_AGENT': 'Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405'
})
self.im.process_request(request)
self.assertEqual(request.is_igb, False)
self.assertEqual(request.is_igb_trusted, False)
def test_invalid_browser_igb_fake_trust(self):
request = self.request_factory({
'HTTP_USER_AGENT': 'Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405',
'HTTP_EVE_TRUSTED': 'Yes',
})
self.im.process_request(request)
self.assertEqual(request.is_igb, False)
self.assertEqual(request.is_igb_trusted, False)
def test_valid_igb_no_trust(self):
request = self.request_factory({
'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0 EVE-IGB',
})
self.im.process_request(request)
self.assertEqual(request.is_igb, True)
self.assertEqual(request.is_igb_trusted, False)
def test_valid_igb_trust(self):
request = self.request_factory({
'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0 EVE-IGB',
'HTTP_EVE_TRUSTED': 'Yes',
})
self.im.process_request(request)
self.assertEqual(request.is_igb, True)
self.assertEqual(request.is_igb_trusted, True)