diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/urlpatterns_reverse/tests.py | 18 | ||||
| -rw-r--r-- | tests/regressiontests/urlpatterns_reverse/views_broken.py | 2 |
2 files changed, 18 insertions, 2 deletions
diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py index 207cc56488..b9c64183e5 100644 --- a/tests/regressiontests/urlpatterns_reverse/tests.py +++ b/tests/regressiontests/urlpatterns_reverse/tests.py @@ -5,8 +5,9 @@ from __future__ import absolute_import, unicode_literals from django.conf import settings from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist -from django.core.urlresolvers import (reverse, resolve, NoReverseMatch, - Resolver404, ResolverMatch, RegexURLResolver, RegexURLPattern) +from django.core.urlresolvers import (reverse, resolve, get_callable, + NoReverseMatch, Resolver404, ResolverMatch, RegexURLResolver, + RegexURLPattern) from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect from django.shortcuts import redirect from django.test import TestCase @@ -519,3 +520,16 @@ class ErroneousViewTests(TestCase): """ # The regex error will be hit before NoReverseMatch can be raised self.assertRaises(ImproperlyConfigured, reverse, 'whatever blah blah') + +class ViewLoadingTests(TestCase): + def test_view_loading(self): + # A missing view (identified by an AttributeError) should raise + # ViewDoesNotExist, ... + self.assertRaisesRegexp(ViewDoesNotExist, ".*View does not exist in.*", + get_callable, + 'regressiontests.urlpatterns_reverse.views.i_should_not_exist') + # ... but if the AttributeError is caused by something else don't + # swallow it. + self.assertRaises(AttributeError, get_callable, + 'regressiontests.urlpatterns_reverse.views_broken.i_am_broken') + diff --git a/tests/regressiontests/urlpatterns_reverse/views_broken.py b/tests/regressiontests/urlpatterns_reverse/views_broken.py new file mode 100644 index 0000000000..4953aab239 --- /dev/null +++ b/tests/regressiontests/urlpatterns_reverse/views_broken.py @@ -0,0 +1,2 @@ +# I just raise an AttributeError to confuse the view loading mechanism +raise AttributeError('I am here to confuse django.core.urlresolvers.get_callable') |
