diff options
Diffstat (limited to 'tests/regressiontests/urlpatterns_reverse')
4 files changed, 35 insertions, 1 deletions
diff --git a/tests/regressiontests/urlpatterns_reverse/erroneous_urls.py b/tests/regressiontests/urlpatterns_reverse/erroneous_urls.py new file mode 100644 index 0000000000..b09fff7e3e --- /dev/null +++ b/tests/regressiontests/urlpatterns_reverse/erroneous_urls.py @@ -0,0 +1,14 @@ +from django.conf.urls.defaults import patterns, url + +urlpatterns = patterns('', + # View has erroneous import + url(r'erroneous_inner/$', 'regressiontests.urlpatterns_reverse.views.erroneous_view'), + # Module has erroneous import + url(r'erroneous_outer/$', 'regressiontests.urlpatterns_reverse.erroneous_views_module.erroneous_view'), + # View does not exist + url(r'missing_inner/$', 'regressiontests.urlpatterns_reverse.views.missing_view'), + # View is not callable + url(r'uncallable/$', 'regressiontests.urlpatterns_reverse.views.uncallable'), + # Module does not exist + url(r'missing_outer/$', 'regressiontests.urlpatterns_reverse.missing_module.missing_view'), +) diff --git a/tests/regressiontests/urlpatterns_reverse/erroneous_views_module.py b/tests/regressiontests/urlpatterns_reverse/erroneous_views_module.py new file mode 100644 index 0000000000..7f6b75e00f --- /dev/null +++ b/tests/regressiontests/urlpatterns_reverse/erroneous_views_module.py @@ -0,0 +1,4 @@ +import non_existent + +def erroneous_view(request): + pass diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py index 31a928caa2..f447adf4cc 100644 --- a/tests/regressiontests/urlpatterns_reverse/tests.py +++ b/tests/regressiontests/urlpatterns_reverse/tests.py @@ -2,7 +2,7 @@ Unit tests for reverse URL lookups. """ from django.conf import settings -from django.core.exceptions import ImproperlyConfigured +from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist from django.core.urlresolvers import reverse, resolve, NoReverseMatch,\ Resolver404, ResolverMatch,\ RegexURLResolver, RegexURLPattern @@ -470,3 +470,14 @@ class ResolverMatchTests(TestCase): self.assertEqual(match[0], func) self.assertEqual(match[1], args) self.assertEqual(match[2], kwargs) + +class ErroneousViewTests(TestCase): + urls = 'regressiontests.urlpatterns_reverse.erroneous_urls' + + def test_erroneous_resolve(self): + self.assertRaises(ImportError, self.client.get, '/erroneous_inner/') + self.assertRaises(ImportError, self.client.get, '/erroneous_outer/') + self.assertRaises(ViewDoesNotExist, self.client.get, '/missing_inner/') + self.assertRaises(ViewDoesNotExist, self.client.get, '/missing_outer/') + self.assertRaises(ViewDoesNotExist, self.client.get, '/uncallable/') + diff --git a/tests/regressiontests/urlpatterns_reverse/views.py b/tests/regressiontests/urlpatterns_reverse/views.py index 2d10aee979..f631acf3ec 100644 --- a/tests/regressiontests/urlpatterns_reverse/views.py +++ b/tests/regressiontests/urlpatterns_reverse/views.py @@ -16,6 +16,11 @@ def absolute_kwargs_view(request, arg1=1, arg2=2): def defaults_view(request, arg1, arg2): pass +def erroneous_view(request): + import non_existent + +uncallable = "Can I be a view? Pleeeease?" + class ViewClass(object): def __call__(self, request, *args, **kwargs): return HttpResponse('') |
