diff options
| author | Preston Timmons <prestontimmons@gfa.org> | 2013-04-02 19:00:55 -0600 |
|---|---|---|
| committer | Carl Meyer <carl@oddbird.net> | 2013-04-02 19:00:55 -0600 |
| commit | 8ce46375ae3927eec142a8689215ac5039123a03 (patch) | |
| tree | a16a5788222f4b8d89085cf5871c99fb7732b0d1 /tests/conditional_processing | |
| parent | f2d3c4b0caccd509dda8463ec71549a1a0cda0b7 (diff) | |
Move last remaining tests out of models.py files; prep for test discovery.
Diffstat (limited to 'tests/conditional_processing')
| -rw-r--r-- | tests/conditional_processing/models.py | 129 | ||||
| -rw-r--r-- | tests/conditional_processing/tests.py | 129 | ||||
| -rw-r--r-- | tests/conditional_processing/views.py | 2 |
3 files changed, 130 insertions, 130 deletions
diff --git a/tests/conditional_processing/models.py b/tests/conditional_processing/models.py index 77f1ff54ed..e69de29bb2 100644 --- a/tests/conditional_processing/models.py +++ b/tests/conditional_processing/models.py @@ -1,129 +0,0 @@ -# -*- coding:utf-8 -*- -from __future__ import unicode_literals - -from datetime import datetime - -from django.test import TestCase - - -FULL_RESPONSE = 'Test conditional get response' -LAST_MODIFIED = datetime(2007, 10, 21, 23, 21, 47) -LAST_MODIFIED_STR = 'Sun, 21 Oct 2007 23:21:47 GMT' -LAST_MODIFIED_NEWER_STR = 'Mon, 18 Oct 2010 16:56:23 GMT' -LAST_MODIFIED_INVALID_STR = 'Mon, 32 Oct 2010 16:56:23 GMT' -EXPIRED_LAST_MODIFIED_STR = 'Sat, 20 Oct 2007 23:21:47 GMT' -ETAG = 'b4246ffc4f62314ca13147c9d4f76974' -EXPIRED_ETAG = '7fae4cd4b0f81e7d2914700043aa8ed6' - -class ConditionalGet(TestCase): - urls = 'conditional_processing.urls' - - def assertFullResponse(self, response, check_last_modified=True, check_etag=True): - self.assertEqual(response.status_code, 200) - self.assertEqual(response.content, FULL_RESPONSE.encode()) - if check_last_modified: - self.assertEqual(response['Last-Modified'], LAST_MODIFIED_STR) - if check_etag: - self.assertEqual(response['ETag'], '"%s"' % ETAG) - - def assertNotModified(self, response): - self.assertEqual(response.status_code, 304) - self.assertEqual(response.content, b'') - - def testWithoutConditions(self): - response = self.client.get('/condition/') - self.assertFullResponse(response) - - def testIfModifiedSince(self): - self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_STR - response = self.client.get('/condition/') - self.assertNotModified(response) - self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_NEWER_STR - response = self.client.get('/condition/') - self.assertNotModified(response) - self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_INVALID_STR - response = self.client.get('/condition/') - self.assertFullResponse(response) - self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = EXPIRED_LAST_MODIFIED_STR - response = self.client.get('/condition/') - self.assertFullResponse(response) - - def testIfNoneMatch(self): - self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % ETAG - response = self.client.get('/condition/') - self.assertNotModified(response) - self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % EXPIRED_ETAG - response = self.client.get('/condition/') - self.assertFullResponse(response) - - # Several etags in If-None-Match is a bit exotic but why not? - self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s", "%s"' % (ETAG, EXPIRED_ETAG) - response = self.client.get('/condition/') - self.assertNotModified(response) - - def testIfMatch(self): - self.client.defaults['HTTP_IF_MATCH'] = '"%s"' % ETAG - response = self.client.put('/condition/etag/') - self.assertEqual(response.status_code, 200) - self.client.defaults['HTTP_IF_MATCH'] = '"%s"' % EXPIRED_ETAG - response = self.client.put('/condition/etag/') - self.assertEqual(response.status_code, 412) - - def testBothHeaders(self): - self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_STR - self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % ETAG - response = self.client.get('/condition/') - self.assertNotModified(response) - - self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = EXPIRED_LAST_MODIFIED_STR - self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % ETAG - response = self.client.get('/condition/') - self.assertFullResponse(response) - - self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_STR - self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % EXPIRED_ETAG - response = self.client.get('/condition/') - self.assertFullResponse(response) - - def testSingleCondition1(self): - self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_STR - response = self.client.get('/condition/last_modified/') - self.assertNotModified(response) - response = self.client.get('/condition/etag/') - self.assertFullResponse(response, check_last_modified=False) - - def testSingleCondition2(self): - self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % ETAG - response = self.client.get('/condition/etag/') - self.assertNotModified(response) - response = self.client.get('/condition/last_modified/') - self.assertFullResponse(response, check_etag=False) - - def testSingleCondition3(self): - self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = EXPIRED_LAST_MODIFIED_STR - response = self.client.get('/condition/last_modified/') - self.assertFullResponse(response, check_etag=False) - - def testSingleCondition4(self): - self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % EXPIRED_ETAG - response = self.client.get('/condition/etag/') - self.assertFullResponse(response, check_last_modified=False) - - def testSingleCondition5(self): - self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_STR - response = self.client.get('/condition/last_modified2/') - self.assertNotModified(response) - response = self.client.get('/condition/etag2/') - self.assertFullResponse(response, check_last_modified=False) - - def testSingleCondition6(self): - self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % ETAG - response = self.client.get('/condition/etag2/') - self.assertNotModified(response) - response = self.client.get('/condition/last_modified2/') - self.assertFullResponse(response, check_etag=False) - - def testInvalidETag(self): - self.client.defaults['HTTP_IF_NONE_MATCH'] = r'"\"' - response = self.client.get('/condition/etag/') - self.assertFullResponse(response, check_last_modified=False) diff --git a/tests/conditional_processing/tests.py b/tests/conditional_processing/tests.py new file mode 100644 index 0000000000..77f1ff54ed --- /dev/null +++ b/tests/conditional_processing/tests.py @@ -0,0 +1,129 @@ +# -*- coding:utf-8 -*- +from __future__ import unicode_literals + +from datetime import datetime + +from django.test import TestCase + + +FULL_RESPONSE = 'Test conditional get response' +LAST_MODIFIED = datetime(2007, 10, 21, 23, 21, 47) +LAST_MODIFIED_STR = 'Sun, 21 Oct 2007 23:21:47 GMT' +LAST_MODIFIED_NEWER_STR = 'Mon, 18 Oct 2010 16:56:23 GMT' +LAST_MODIFIED_INVALID_STR = 'Mon, 32 Oct 2010 16:56:23 GMT' +EXPIRED_LAST_MODIFIED_STR = 'Sat, 20 Oct 2007 23:21:47 GMT' +ETAG = 'b4246ffc4f62314ca13147c9d4f76974' +EXPIRED_ETAG = '7fae4cd4b0f81e7d2914700043aa8ed6' + +class ConditionalGet(TestCase): + urls = 'conditional_processing.urls' + + def assertFullResponse(self, response, check_last_modified=True, check_etag=True): + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, FULL_RESPONSE.encode()) + if check_last_modified: + self.assertEqual(response['Last-Modified'], LAST_MODIFIED_STR) + if check_etag: + self.assertEqual(response['ETag'], '"%s"' % ETAG) + + def assertNotModified(self, response): + self.assertEqual(response.status_code, 304) + self.assertEqual(response.content, b'') + + def testWithoutConditions(self): + response = self.client.get('/condition/') + self.assertFullResponse(response) + + def testIfModifiedSince(self): + self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_STR + response = self.client.get('/condition/') + self.assertNotModified(response) + self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_NEWER_STR + response = self.client.get('/condition/') + self.assertNotModified(response) + self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_INVALID_STR + response = self.client.get('/condition/') + self.assertFullResponse(response) + self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = EXPIRED_LAST_MODIFIED_STR + response = self.client.get('/condition/') + self.assertFullResponse(response) + + def testIfNoneMatch(self): + self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % ETAG + response = self.client.get('/condition/') + self.assertNotModified(response) + self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % EXPIRED_ETAG + response = self.client.get('/condition/') + self.assertFullResponse(response) + + # Several etags in If-None-Match is a bit exotic but why not? + self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s", "%s"' % (ETAG, EXPIRED_ETAG) + response = self.client.get('/condition/') + self.assertNotModified(response) + + def testIfMatch(self): + self.client.defaults['HTTP_IF_MATCH'] = '"%s"' % ETAG + response = self.client.put('/condition/etag/') + self.assertEqual(response.status_code, 200) + self.client.defaults['HTTP_IF_MATCH'] = '"%s"' % EXPIRED_ETAG + response = self.client.put('/condition/etag/') + self.assertEqual(response.status_code, 412) + + def testBothHeaders(self): + self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_STR + self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % ETAG + response = self.client.get('/condition/') + self.assertNotModified(response) + + self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = EXPIRED_LAST_MODIFIED_STR + self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % ETAG + response = self.client.get('/condition/') + self.assertFullResponse(response) + + self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_STR + self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % EXPIRED_ETAG + response = self.client.get('/condition/') + self.assertFullResponse(response) + + def testSingleCondition1(self): + self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_STR + response = self.client.get('/condition/last_modified/') + self.assertNotModified(response) + response = self.client.get('/condition/etag/') + self.assertFullResponse(response, check_last_modified=False) + + def testSingleCondition2(self): + self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % ETAG + response = self.client.get('/condition/etag/') + self.assertNotModified(response) + response = self.client.get('/condition/last_modified/') + self.assertFullResponse(response, check_etag=False) + + def testSingleCondition3(self): + self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = EXPIRED_LAST_MODIFIED_STR + response = self.client.get('/condition/last_modified/') + self.assertFullResponse(response, check_etag=False) + + def testSingleCondition4(self): + self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % EXPIRED_ETAG + response = self.client.get('/condition/etag/') + self.assertFullResponse(response, check_last_modified=False) + + def testSingleCondition5(self): + self.client.defaults['HTTP_IF_MODIFIED_SINCE'] = LAST_MODIFIED_STR + response = self.client.get('/condition/last_modified2/') + self.assertNotModified(response) + response = self.client.get('/condition/etag2/') + self.assertFullResponse(response, check_last_modified=False) + + def testSingleCondition6(self): + self.client.defaults['HTTP_IF_NONE_MATCH'] = '"%s"' % ETAG + response = self.client.get('/condition/etag2/') + self.assertNotModified(response) + response = self.client.get('/condition/last_modified2/') + self.assertFullResponse(response, check_etag=False) + + def testInvalidETag(self): + self.client.defaults['HTTP_IF_NONE_MATCH'] = r'"\"' + response = self.client.get('/condition/etag/') + self.assertFullResponse(response, check_last_modified=False) diff --git a/tests/conditional_processing/views.py b/tests/conditional_processing/views.py index 2188c9b462..14a5a83a45 100644 --- a/tests/conditional_processing/views.py +++ b/tests/conditional_processing/views.py @@ -4,7 +4,7 @@ from __future__ import absolute_import from django.views.decorators.http import condition, etag, last_modified from django.http import HttpResponse -from .models import FULL_RESPONSE, LAST_MODIFIED, ETAG +from .tests import FULL_RESPONSE, LAST_MODIFIED, ETAG def index(request): |
