diff options
Diffstat (limited to 'tests/urlpatterns_reverse')
| -rw-r--r-- | tests/urlpatterns_reverse/method_view_urls.py | 18 | ||||
| -rw-r--r-- | tests/urlpatterns_reverse/tests.py | 8 |
2 files changed, 26 insertions, 0 deletions
diff --git a/tests/urlpatterns_reverse/method_view_urls.py b/tests/urlpatterns_reverse/method_view_urls.py new file mode 100644 index 0000000000..d2f24ecffa --- /dev/null +++ b/tests/urlpatterns_reverse/method_view_urls.py @@ -0,0 +1,18 @@ +from django.conf.urls import url + + +class ViewContainer(object): + def method_view(self, request): + pass + + @classmethod + def classmethod_view(cls, request): + pass + +view_container = ViewContainer() + + +urlpatterns = [ + url(r'^$', view_container.method_view, name='instance-method-url'), + url(r'^$', ViewContainer.classmethod_view, name='instance-method-url'), +] diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py index 67a4370e78..522899e886 100644 --- a/tests/urlpatterns_reverse/tests.py +++ b/tests/urlpatterns_reverse/tests.py @@ -6,6 +6,7 @@ from __future__ import unicode_literals import sys import threading +import unittest from admin_scripts.tests import AdminScriptTestCase @@ -430,6 +431,13 @@ class ResolverTests(SimpleTestCase): self.assertTrue(resolver._is_callback('urlpatterns_reverse.nested_urls.View3')) self.assertFalse(resolver._is_callback('urlpatterns_reverse.nested_urls.blub')) + @unittest.skipIf(six.PY2, "Python 2 doesn't support __qualname__.") + 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(resolver._is_callback('urlpatterns_reverse.method_view_urls.ViewContainer.method_view')) + self.assertTrue(resolver._is_callback('urlpatterns_reverse.method_view_urls.ViewContainer.classmethod_view')) + def test_populate_concurrency(self): """ RegexURLResolver._populate() can be called concurrently, but not more |
