From 7f3cfaa12b28d15c0ca78bb692bfd6e59d17bff1 Mon Sep 17 00:00:00 2001 From: Alokik Vijay Date: Tue, 17 May 2022 09:46:26 +0200 Subject: Fixed #32565 -- Moved internal URLResolver view-strings mapping to admindocs. Moved the functionality of URLResolver._is_callback(), URLResolver._callback_strs, URLPattern.lookup_str() to django.contrib.admindocs. --- tests/admin_docs/test_utils.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'tests/admin_docs') diff --git a/tests/admin_docs/test_utils.py b/tests/admin_docs/test_utils.py index 18c6769fad..e26a4ca1f3 100644 --- a/tests/admin_docs/test_utils.py +++ b/tests/admin_docs/test_utils.py @@ -1,13 +1,15 @@ import unittest from django.contrib.admindocs.utils import ( + _is_callback, docutils_is_available, parse_docstring, parse_rst, ) from django.test.utils import captured_stderr +from django.urls import get_resolver -from .tests import AdminDocsSimpleTestCase +from .tests import AdminDocsSimpleTestCase, SimpleTestCase @unittest.skipUnless(docutils_is_available, "no docutils installed.") @@ -119,3 +121,28 @@ class TestUtils(AdminDocsSimpleTestCase): markup = "

reST, interpreted text, default role.

\n" parts = docutils.core.publish_parts(source=source, writer_name="html4css1") self.assertEqual(parts["fragment"], markup) + + +class TestResolver(SimpleTestCase): + def test_namespaced_view_detail(self): + resolver = get_resolver("urlpatterns_reverse.nested_urls") + self.assertTrue(_is_callback("urlpatterns_reverse.nested_urls.view1", resolver)) + self.assertTrue(_is_callback("urlpatterns_reverse.nested_urls.view2", resolver)) + self.assertTrue(_is_callback("urlpatterns_reverse.nested_urls.View3", resolver)) + self.assertFalse(_is_callback("urlpatterns_reverse.nested_urls.blub", resolver)) + + def test_view_detail_as_method(self): + # Views which have a class name as part of their path. + resolver = get_resolver("urlpatterns_reverse.method_view_urls") + self.assertTrue( + _is_callback( + "urlpatterns_reverse.method_view_urls.ViewContainer.method_view", + resolver, + ) + ) + self.assertTrue( + _is_callback( + "urlpatterns_reverse.method_view_urls.ViewContainer.classmethod_view", + resolver, + ) + ) -- cgit v1.3