summaryrefslogtreecommitdiff
path: root/tests/urlpatterns_reverse
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2018-07-20 01:18:23 +0430
committerTim Graham <timograham@gmail.com>2018-07-19 16:48:23 -0400
commit55b6f7af0c6ab7f25818445cfbb9e18ddafedcc9 (patch)
tree073daf8885a9fc993b49c96f1071eb6410d5ab45 /tests/urlpatterns_reverse
parent0adfba968e28cfb4e4d681e658866debbbd68089 (diff)
downloaddjango-55b6f7af0c6ab7f25818445cfbb9e18ddafedcc9.tar.gz
Completed test coverage for django.urls.utils.get_callable().
Diffstat (limited to 'tests/urlpatterns_reverse')
-rw-r--r--tests/urlpatterns_reverse/tests.py43
1 files changed, 34 insertions, 9 deletions
diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py
index 6112953d45..037182f756 100644
--- a/tests/urlpatterns_reverse/tests.py
+++ b/tests/urlpatterns_reverse/tests.py
@@ -1137,20 +1137,45 @@ class ErroneousViewTests(SimpleTestCase):
class ViewLoadingTests(SimpleTestCase):
def test_view_loading(self):
self.assertEqual(get_callable('urlpatterns_reverse.views.empty_view'), empty_view)
-
- # passing a callable should return the callable
self.assertEqual(get_callable(empty_view), empty_view)
- def test_exceptions(self):
- # A missing view (identified by an AttributeError) should raise
- # ViewDoesNotExist, ...
- with self.assertRaisesMessage(ViewDoesNotExist, "View does not exist in"):
+ def test_view_does_not_exist(self):
+ msg = "View does not exist in module urlpatterns_reverse.views."
+ with self.assertRaisesMessage(ViewDoesNotExist, msg):
get_callable('urlpatterns_reverse.views.i_should_not_exist')
- # ... but if the AttributeError is caused by something else don't
- # swallow it.
- with self.assertRaises(AttributeError):
+
+ def test_attributeerror_not_hidden(self):
+ msg = 'I am here to confuse django.urls.get_callable'
+ with self.assertRaisesMessage(AttributeError, msg):
get_callable('urlpatterns_reverse.views_broken.i_am_broken')
+ def test_non_string_value(self):
+ msg = "'1' is not a callable or a dot-notation path"
+ with self.assertRaisesMessage(ViewDoesNotExist, msg):
+ get_callable(1)
+
+ def test_string_without_dot(self):
+ msg = "Could not import 'test'. The path must be fully qualified."
+ with self.assertRaisesMessage(ImportError, msg):
+ get_callable('test')
+
+ def test_module_does_not_exist(self):
+ with self.assertRaisesMessage(ImportError, "No module named 'foo'"):
+ get_callable('foo.bar')
+
+ def test_parent_module_does_not_exist(self):
+ msg = 'Parent module urlpatterns_reverse.foo does not exist.'
+ with self.assertRaisesMessage(ViewDoesNotExist, msg):
+ get_callable('urlpatterns_reverse.foo.bar')
+
+ def test_not_callable(self):
+ msg = (
+ "Could not import 'urlpatterns_reverse.tests.resolve_test_data'. "
+ "View is not callable."
+ )
+ with self.assertRaisesMessage(ViewDoesNotExist, msg):
+ get_callable('urlpatterns_reverse.tests.resolve_test_data')
+
class IncludeTests(SimpleTestCase):
url_patterns = [