Adjusted CBV resolver_match example in testing tools docs.
The view_class is available on the view callback, allowing that to be checked, rather than the __name__.
This commit is contained in:
parent
f38c3cbadc
commit
d15a10afb5
|
@ -541,12 +541,12 @@ Specifically, a ``Response`` object has the following attributes:
|
||||||
You can use the :attr:`~django.urls.ResolverMatch.func` attribute, for
|
You can use the :attr:`~django.urls.ResolverMatch.func` attribute, for
|
||||||
example, to verify the view that served the response::
|
example, to verify the view that served the response::
|
||||||
|
|
||||||
# my_view here is a function based view
|
# my_view here is a function based view.
|
||||||
self.assertEqual(response.resolver_match.func, my_view)
|
self.assertEqual(response.resolver_match.func, my_view)
|
||||||
|
|
||||||
# class-based views need to be compared by name, as the functions
|
# Class-based views need to compare the view_class, as the
|
||||||
# generated by as_view() won't be equal
|
# functions generated by as_view() won't be equal.
|
||||||
self.assertEqual(response.resolver_match.func.__name__, MyView.as_view().__name__)
|
self.assertIs(response.resolver_match.func.view_class, MyView)
|
||||||
|
|
||||||
If the given URL is not found, accessing this attribute will raise a
|
If the given URL is not found, accessing this attribute will raise a
|
||||||
:exc:`~django.urls.Resolver404` exception.
|
:exc:`~django.urls.Resolver404` exception.
|
||||||
|
|
|
@ -32,6 +32,7 @@ from django.test import (
|
||||||
)
|
)
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from django.utils.decorators import async_only_middleware
|
from django.utils.decorators import async_only_middleware
|
||||||
|
from django.views.generic import RedirectView
|
||||||
|
|
||||||
from .views import TwoArgException, get_view, post_view, trace_view
|
from .views import TwoArgException, get_view, post_view, trace_view
|
||||||
|
|
||||||
|
@ -213,6 +214,14 @@ class ClientTest(TestCase):
|
||||||
response = self.client.get('/get_view/')
|
response = self.client.get('/get_view/')
|
||||||
self.assertEqual(response.resolver_match.url_name, 'get_view')
|
self.assertEqual(response.resolver_match.url_name, 'get_view')
|
||||||
|
|
||||||
|
def test_response_resolver_match_class_based_view(self):
|
||||||
|
"""
|
||||||
|
The response ResolverMatch instance can be used to access the CBV view
|
||||||
|
class.
|
||||||
|
"""
|
||||||
|
response = self.client.get('/accounts/')
|
||||||
|
self.assertIs(response.resolver_match.func.view_class, RedirectView)
|
||||||
|
|
||||||
@modify_settings(MIDDLEWARE={'prepend': 'test_client.tests.middleware_urlconf'})
|
@modify_settings(MIDDLEWARE={'prepend': 'test_client.tests.middleware_urlconf'})
|
||||||
def test_response_resolver_match_middleware_urlconf(self):
|
def test_response_resolver_match_middleware_urlconf(self):
|
||||||
response = self.client.get('/middleware_urlconf_view/')
|
response = self.client.get('/middleware_urlconf_view/')
|
||||||
|
|
Loading…
Reference in New Issue