diff options
author | Adam Johnson <me@adamj.eu> | 2019-08-15 06:48:33 +0100 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-03-23 08:11:14 +0100 |
commit | 4ed534758cb6a11df9f49baddecca5a6cdda9311 (patch) | |
tree | ddfa4db02a7b6db0630352441bc1a92ceaa99a0f /tests/generic_views | |
parent | f982f0bdb8317e75af416595c616943d5025da1e (diff) | |
download | django-4ed534758cb6a11df9f49baddecca5a6cdda9311.tar.gz |
Fixed #19878 -- Deprecated TemplateView passing URL kwargs into context.
Diffstat (limited to 'tests/generic_views')
-rw-r--r-- | tests/generic_views/test_base.py | 59 | ||||
-rw-r--r-- | tests/generic_views/urls.py | 5 |
2 files changed, 43 insertions, 21 deletions
diff --git a/tests/generic_views/test_base.py b/tests/generic_views/test_base.py index 7aaea3ffa0..d498d23a68 100644 --- a/tests/generic_views/test_base.py +++ b/tests/generic_views/test_base.py @@ -2,9 +2,12 @@ import time from django.core.exceptions import ImproperlyConfigured from django.http import HttpResponse -from django.test import RequestFactory, SimpleTestCase, override_settings +from django.test import ( + RequestFactory, SimpleTestCase, ignore_warnings, override_settings, +) from django.test.utils import require_jinja2 from django.urls import resolve +from django.utils.deprecation import RemovedInDjango40Warning from django.views.generic import RedirectView, TemplateView, View from . import views @@ -347,25 +350,6 @@ class TemplateViewTest(SimpleTestCase): view = TemplateView.as_view(template_name='generic_views/using.html', template_engine='jinja2') self.assertEqual(view(request).render().content, b'Jinja2\n') - def test_template_params(self): - """ - A generic template view passes kwargs as context. - """ - response = self.client.get('/template/simple/bar/') - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['foo'], 'bar') - self.assertIsInstance(response.context['view'], View) - - def test_extra_template_params(self): - """ - A template view can be customized to return extra context. - """ - response = self.client.get('/template/custom/bar/') - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['foo'], 'bar') - self.assertEqual(response.context['key'], 'value') - self.assertIsInstance(response.context['view'], View) - def test_cached_views(self): """ A template view can be cached @@ -584,3 +568,38 @@ class SingleObjectTemplateResponseMixinTest(SimpleTestCase): ) with self.assertRaisesMessage(ImproperlyConfigured, msg): view.get_template_names() + + +@override_settings(ROOT_URLCONF='generic_views.urls') +class DeprecationTests(SimpleTestCase): + @ignore_warnings(category=RemovedInDjango40Warning) + def test_template_params(self): + """A generic template view passes kwargs as context.""" + response = self.client.get('/template/simple/bar/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.context['foo'], 'bar') + self.assertIsInstance(response.context['view'], View) + + @ignore_warnings(category=RemovedInDjango40Warning) + def test_extra_template_params(self): + """A template view can be customized to return extra context.""" + response = self.client.get('/template/custom/bar1/bar2/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.context['foo1'], 'bar1') + self.assertEqual(response.context['foo2'], 'bar2') + self.assertEqual(response.context['key'], 'value') + self.assertIsInstance(response.context['view'], View) + + def test_template_params_warning(self): + response = self.client.get('/template/custom/bar1/bar2/') + self.assertEqual(response.status_code, 200) + msg = ( + 'TemplateView passing URL kwargs to the context is deprecated. ' + 'Reference %s in your template through view.kwargs instead.' + ) + with self.assertRaisesMessage(RemovedInDjango40Warning, msg % 'foo1'): + str(response.context['foo1']) + with self.assertRaisesMessage(RemovedInDjango40Warning, msg % 'foo2'): + str(response.context['foo2']) + self.assertEqual(response.context['key'], 'value') + self.assertIsInstance(response.context['view'], View) diff --git a/tests/generic_views/urls.py b/tests/generic_views/urls.py index 5295bff08d..d547c5be4a 100644 --- a/tests/generic_views/urls.py +++ b/tests/generic_views/urls.py @@ -12,7 +12,10 @@ urlpatterns = [ path('template/no_template/', TemplateView.as_view()), path('template/login_required/', login_required(TemplateView.as_view())), path('template/simple/<foo>/', TemplateView.as_view(template_name='generic_views/about.html')), - path('template/custom/<foo>/', views.CustomTemplateView.as_view(template_name='generic_views/about.html')), + path( + 'template/custom/<foo1>/<foo2>/', + views.CustomTemplateView.as_view(template_name='generic_views/about.html'), + ), path( 'template/content_type/', TemplateView.as_view(template_name='generic_views/robots.txt', content_type='text/plain'), |