From 3580b47ed31ec85ae89b13618f36bb463e97acc8 Mon Sep 17 00:00:00 2001 From: Rinat Khabibiev Date: Thu, 15 Sep 2016 08:41:07 +0300 Subject: Fixed #27225 -- Added "Age" header when fetching cached responses. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Author: Alexander Lazarević --- tests/cache/tests.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'tests/cache') diff --git a/tests/cache/tests.py b/tests/cache/tests.py index e6ebb718f1..978efdd9d3 100644 --- a/tests/cache/tests.py +++ b/tests/cache/tests.py @@ -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", -- cgit v1.3