mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	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:
		| @@ -541,12 +541,12 @@ Specifically, a ``Response`` object has the following attributes: | ||||
|         You can use the :attr:`~django.urls.ResolverMatch.func` attribute, for | ||||
|         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) | ||||
|  | ||||
|             # class-based views need to be compared by name, as the functions | ||||
|             # generated by as_view() won't be equal | ||||
|             self.assertEqual(response.resolver_match.func.__name__, MyView.as_view().__name__) | ||||
|             # Class-based views need to compare the view_class, as the | ||||
|             # functions generated by as_view() won't be equal. | ||||
|             self.assertIs(response.resolver_match.func.view_class, MyView) | ||||
|  | ||||
|         If the given URL is not found, accessing this attribute will raise a | ||||
|         :exc:`~django.urls.Resolver404` exception. | ||||
|   | ||||
| @@ -32,6 +32,7 @@ from django.test import ( | ||||
| ) | ||||
| from django.urls import reverse_lazy | ||||
| from django.utils.decorators import async_only_middleware | ||||
| from django.views.generic import RedirectView | ||||
|  | ||||
| from .views import TwoArgException, get_view, post_view, trace_view | ||||
|  | ||||
| @@ -213,6 +214,14 @@ class ClientTest(TestCase): | ||||
|         response = self.client.get('/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'}) | ||||
|     def test_response_resolver_match_middleware_urlconf(self): | ||||
|         response = self.client.get('/middleware_urlconf_view/') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user