diff options
| author | Denis Cornehl <syphar@fastmail.fm> | 2016-04-03 12:15:10 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-10-10 14:55:59 -0400 |
| commit | a840710e1e38bc9e55412bb36eca92eff94ebd2c (patch) | |
| tree | b6ab8b8456eea42645949cb46114fbab50aae0fa /tests | |
| parent | 46a3d7604e7fecde8df02ec363200ec5e0ce894e (diff) | |
Fixed #26447 -- Deprecated settings.USE_ETAGS in favor of ConditionalGetMiddleware.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/admin_views/tests.py | 6 | ||||
| -rw-r--r-- | tests/cache/tests.py | 6 | ||||
| -rw-r--r-- | tests/middleware/tests.py | 36 |
3 files changed, 43 insertions, 5 deletions
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index ba15e18a2c..3007764b5d 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -35,7 +35,9 @@ from django.urls import NoReverseMatch, resolve, reverse from django.utils import formats, six, translation from django.utils._os import upath from django.utils.cache import get_max_age -from django.utils.deprecation import RemovedInDjango20Warning +from django.utils.deprecation import ( + RemovedInDjango20Warning, RemovedInDjango21Warning, +) from django.utils.encoding import force_bytes, force_text, iri_to_uri from django.utils.html import escape from django.utils.http import urlencode @@ -6074,7 +6076,7 @@ class TestETagWithAdminView(SimpleTestCase): self.assertEqual(response.status_code, 302) self.assertFalse(response.has_header('ETag')) - with self.settings(USE_ETAGS=True): + with self.settings(USE_ETAGS=True), ignore_warnings(category=RemovedInDjango21Warning): response = self.client.get(reverse('admin:index')) self.assertEqual(response.status_code, 302) self.assertTrue(response.has_header('ETag')) diff --git a/tests/cache/tests.py b/tests/cache/tests.py index 7ae39278fd..122017b54e 100644 --- a/tests/cache/tests.py +++ b/tests/cache/tests.py @@ -33,8 +33,8 @@ from django.template import engines from django.template.context_processors import csrf from django.template.response import TemplateResponse from django.test import ( - RequestFactory, SimpleTestCase, TestCase, TransactionTestCase, mock, - override_settings, + RequestFactory, SimpleTestCase, TestCase, TransactionTestCase, + ignore_warnings, mock, override_settings, ) from django.test.signals import setting_changed from django.utils import six, timezone, translation @@ -1856,6 +1856,7 @@ class CacheI18nTest(TestCase): "Cache keys should include the time zone name when time zones are active" ) + @ignore_warnings(category=RemovedInDjango21Warning) # USE_ETAGS=True @override_settings( CACHE_MIDDLEWARE_KEY_PREFIX="test", CACHE_MIDDLEWARE_SECONDS=60, @@ -2262,6 +2263,7 @@ class TestWithTemplateResponse(SimpleTestCase): response = response.render() self.assertFalse(response.has_header('ETag')) + @ignore_warnings(category=RemovedInDjango21Warning) @override_settings(USE_ETAGS=True) def test_with_etag(self): template = engines['django'].from_string("This is a test") diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py index 29de46841e..7bf53cfdeb 100644 --- a/tests/middleware/tests.py +++ b/tests/middleware/tests.py @@ -20,8 +20,11 @@ from django.middleware.common import ( ) from django.middleware.gzip import GZipMiddleware from django.middleware.http import ConditionalGetMiddleware -from django.test import RequestFactory, SimpleTestCase, override_settings +from django.test import ( + RequestFactory, SimpleTestCase, ignore_warnings, override_settings, +) from django.utils import six +from django.utils.deprecation import RemovedInDjango21Warning from django.utils.encoding import force_str from django.utils.six.moves import range from django.utils.six.moves.urllib.parse import quote @@ -256,12 +259,14 @@ class CommonMiddlewareTest(SimpleTestCase): # ETag + If-Not-Modified support tests + @ignore_warnings(category=RemovedInDjango21Warning) @override_settings(USE_ETAGS=True) def test_etag(self): req = HttpRequest() res = HttpResponse('content') self.assertTrue(CommonMiddleware().process_response(req, res).has_header('ETag')) + @ignore_warnings(category=RemovedInDjango21Warning) @override_settings(USE_ETAGS=True) def test_etag_streaming_response(self): req = HttpRequest() @@ -269,12 +274,14 @@ class CommonMiddlewareTest(SimpleTestCase): res['ETag'] = 'tomatoes' self.assertEqual(CommonMiddleware().process_response(req, res).get('ETag'), 'tomatoes') + @ignore_warnings(category=RemovedInDjango21Warning) @override_settings(USE_ETAGS=True) def test_no_etag_streaming_response(self): req = HttpRequest() res = StreamingHttpResponse(['content']) self.assertFalse(CommonMiddleware().process_response(req, res).has_header('ETag')) + @ignore_warnings(category=RemovedInDjango21Warning) @override_settings(USE_ETAGS=True) def test_no_etag_no_store_cache(self): req = HttpRequest() @@ -282,6 +289,7 @@ class CommonMiddlewareTest(SimpleTestCase): res['Cache-Control'] = 'No-Cache, No-Store, Max-age=0' self.assertFalse(CommonMiddleware().process_response(req, res).has_header('ETag')) + @ignore_warnings(category=RemovedInDjango21Warning) @override_settings(USE_ETAGS=True) def test_etag_extended_cache_control(self): req = HttpRequest() @@ -289,6 +297,7 @@ class CommonMiddlewareTest(SimpleTestCase): res['Cache-Control'] = 'my-directive="my-no-store"' self.assertTrue(CommonMiddleware().process_response(req, res).has_header('ETag')) + @ignore_warnings(category=RemovedInDjango21Warning) @override_settings(USE_ETAGS=True) def test_if_none_match(self): first_req = HttpRequest() @@ -502,6 +511,30 @@ class ConditionalGetMiddlewareTest(SimpleTestCase): # Tests for the ETag header + 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']) + + 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']) + + def test_no_etag_streaming_response(self): + res = StreamingHttpResponse(['content']) + self.assertFalse(ConditionalGetMiddleware().process_response(self.req, res).has_header('ETag')) + + 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')) + + 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')) + def test_if_none_match_and_no_etag(self): self.req.META['HTTP_IF_NONE_MATCH'] = 'spam' self.resp = ConditionalGetMiddleware().process_response(self.req, self.resp) @@ -796,6 +829,7 @@ class GZipMiddlewareTest(SimpleTestCase): self.assertIsNone(r.get('Content-Encoding')) +@ignore_warnings(category=RemovedInDjango21Warning) @override_settings(USE_ETAGS=True) class ETagGZipMiddlewareTest(SimpleTestCase): """ |
