summaryrefslogtreecommitdiff
path: root/tests/generic_views
diff options
context:
space:
mode:
authorAdam Johnson <me@adamj.eu>2019-08-15 06:48:33 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-03-23 08:11:14 +0100
commit4ed534758cb6a11df9f49baddecca5a6cdda9311 (patch)
treeddfa4db02a7b6db0630352441bc1a92ceaa99a0f /tests/generic_views
parentf982f0bdb8317e75af416595c616943d5025da1e (diff)
downloaddjango-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.py59
-rw-r--r--tests/generic_views/urls.py5
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'),