From cd914175c8209c5f366e87d94f8f6d050347757d Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 24 Dec 2012 20:25:02 +0100 Subject: [1.5.x] Prevented caching of streaming responses. The test introduced in 4b278131 accidentally passed because of a limitation of Python < 3.3. Refs #17758, #7581. Backport of 1c8be95 from master. --- tests/regressiontests/cache/tests.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'tests') diff --git a/tests/regressiontests/cache/tests.py b/tests/regressiontests/cache/tests.py index 9960c01300..cd7da4cece 100644 --- a/tests/regressiontests/cache/tests.py +++ b/tests/regressiontests/cache/tests.py @@ -1424,24 +1424,21 @@ class CacheI18nTest(TestCase): CACHE_MIDDLEWARE_SECONDS=60, USE_ETAGS=True, ) - def test_middleware_with_streaming_response(self): - # cache with non empty request.GET - request = self._get_request_cache(query_string='foo=baz&other=true') - - # first access, cache must return None + def test_middleware_doesnt_cache_streaming_response(self): + request = self._get_request() get_cache_data = FetchFromCacheMiddleware().process_request(request) - self.assertEqual(get_cache_data, None) + self.assertIsNone(get_cache_data) - # pass streaming response through UpdateCacheMiddleware. - content = 'Check for cache with QUERY_STRING and streaming content' + # This test passes on Python < 3.3 even without the corresponding code + # in UpdateCacheMiddleware, because pickling a StreamingHttpResponse + # fails (http://bugs.python.org/issue14288). LocMemCache silently + # swallows the exception and doesn't store the response in cache. + content = ['Check for cache with streaming content.'] response = StreamingHttpResponse(content) UpdateCacheMiddleware().process_response(request, response) - # second access, cache must still return None, because we can't cache - # streaming response. get_cache_data = FetchFromCacheMiddleware().process_request(request) - self.assertEqual(get_cache_data, None) - + self.assertIsNone(get_cache_data) @override_settings( CACHES={ -- cgit v1.3