Fixed #27225 -- Added "Age" header when fetching cached responses.

Co-Authored-By: Author: Alexander Lazarević <laza@e11bits.com>
This commit is contained in:
Rinat Khabibiev 2016-09-15 08:41:07 +03:00 committed by Mariusz Felisiak
parent 4b1cd8edc1
commit 3580b47ed3
2 changed files with 43 additions and 0 deletions

31
tests/cache/tests.py vendored
View file

@ -2752,6 +2752,37 @@ class CacheMiddlewareTest(SimpleTestCase):
self.assertIsNot(thread_caches[0], thread_caches[1])
def test_cache_control_max_age(self):
view = cache_page(2)(hello_world_view)
request = self.factory.get("/view/")
# First request. Freshly created response gets returned with no Age
# header.
with mock.patch.object(
time, "time", return_value=1468749600
): # Sun, 17 Jul 2016 10:00:00 GMT
response = view(request, 1)
response.close()
self.assertIn("Expires", response)
self.assertEqual(response["Expires"], "Sun, 17 Jul 2016 10:00:02 GMT")
self.assertIn("Cache-Control", response)
self.assertEqual(response["Cache-Control"], "max-age=2")
self.assertNotIn("Age", response)
# Second request one second later. Response from the cache gets
# returned with an Age header set to 1 (second).
with mock.patch.object(
time, "time", return_value=1468749601
): # Sun, 17 Jul 2016 10:00:01 GMT
response = view(request, 1)
response.close()
self.assertIn("Expires", response)
self.assertEqual(response["Expires"], "Sun, 17 Jul 2016 10:00:02 GMT")
self.assertIn("Cache-Control", response)
self.assertEqual(response["Cache-Control"], "max-age=2")
self.assertIn("Age", response)
self.assertEqual(response["Age"], "1")
@override_settings(
CACHE_MIDDLEWARE_KEY_PREFIX="settingsprefix",