示例#1
0
 def test_no_if_none_match_and_etag(self):
     self.resp['ETag'] = 'eggs'
     self.resp = ConditionalGetMiddleware().process_response(self.req, self.resp)
     self.assertEqual(self.resp.status_code, 200)
示例#2
0
 def test_if_none_match_and_same_etag(self):
     self.req.META['HTTP_IF_NONE_MATCH'] = self.resp['ETag'] = 'spam'
     self.resp = ConditionalGetMiddleware().process_response(self.req, self.resp)
     self.assertEqual(self.resp.status_code, 304)
示例#3
0
 def test_content_length_header_not_added(self):
     resp = StreamingHttpResponse('content')
     self.assertNotIn('Content-Length', resp)
     resp = ConditionalGetMiddleware().process_response(self.req, resp)
     self.assertNotIn('Content-Length', resp)
示例#4
0
 def test_content_length_header_not_changed(self):
     bad_content_length = len(self.resp.content) + 10
     self.resp['Content-Length'] = bad_content_length
     self.resp = ConditionalGetMiddleware().process_response(self.req, self.resp)
     self.assertEqual(int(self.resp['Content-Length']), bad_content_length)
示例#5
0
 def test_date_header_added(self):
     self.assertNotIn('Date', self.resp)
     self.resp = ConditionalGetMiddleware().process_response(self.req, self.resp)
     self.assertIn('Date', self.resp)
示例#6
0
 def test_content_length_header_added(self):
     content_length = len(self.resp.content)
     self.assertNotIn('Content-Length', self.resp)
     self.resp = ConditionalGetMiddleware().process_response(self.req, self.resp)
     self.assertIn('Content-Length', self.resp)
     self.assertEqual(int(self.resp['Content-Length']), content_length)
示例#7
0
文件: tests.py 项目: schoonc/django
 def test_if_modified_since_and_no_last_modified(self):
     self.req.META[
         'HTTP_IF_MODIFIED_SINCE'] = 'Sat, 12 Feb 2011 17:38:44 GMT'
     self.resp = ConditionalGetMiddleware().process_response(
         self.req, self.resp)
     self.assertEqual(self.resp.status_code, 200)
示例#8
0
文件: tests.py 项目: schoonc/django
 def test_no_if_modified_since_and_last_modified(self):
     self.resp['Last-Modified'] = 'Sat, 12 Feb 2011 17:38:44 GMT'
     self.resp = ConditionalGetMiddleware().process_response(
         self.req, self.resp)
     self.assertEqual(self.resp.status_code, 200)
示例#9
0
 def test_no_etag_no_store_cache(self):
     self.resp['Cache-Control'] = 'No-Cache, No-Store, Max-age=0'
     self.assertFalse(ConditionalGetMiddleware().process_response(
         self.req, self.resp).has_header('ETag'))
示例#10
0
 def test_etag_extended_cache_control(self):
     self.resp['Cache-Control'] = 'my-directive="my-no-store"'
     self.assertTrue(ConditionalGetMiddleware().process_response(
         self.req, self.resp).has_header('ETag'))
示例#11
0
 def test_no_etag_response_empty_content(self):
     res = HttpResponse()
     self.assertFalse(ConditionalGetMiddleware().process_response(
         self.req, res).has_header('ETag'))
示例#12
0
 def test_no_etag_streaming_response(self):
     res = StreamingHttpResponse(['content'])
     self.assertFalse(ConditionalGetMiddleware().process_response(
         self.req, res).has_header('ETag'))
示例#13
0
 def test_middleware_wont_overwrite_etag(self):
     self.resp['ETag'] = 'eggs'
     self.resp = ConditionalGetMiddleware().process_response(
         self.req, self.resp)
     self.assertEqual(self.resp.status_code, 200)
     self.assertEqual('eggs', self.resp['ETag'])
示例#14
0
 def test_middleware_calculates_etag(self):
     self.assertNotIn('ETag', self.resp)
     self.resp = ConditionalGetMiddleware().process_response(
         self.req, self.resp)
     self.assertEqual(self.resp.status_code, 200)
     self.assertNotEqual('', self.resp['ETag'])
示例#15
0
 def test_if_modified_since_and_client_error(self):
     self.req.META['HTTP_IF_MODIFIED_SINCE'] = 'Sat, 12 Feb 2011 17:38:44 GMT'
     self.resp['Last-Modified'] = 'Sat, 12 Feb 2011 17:35:44 GMT'
     self.resp.status_code = 400
     self.resp = ConditionalGetMiddleware().process_response(self.req, self.resp)
     self.assertEqual(self.resp.status_code, 400)