summaryrefslogtreecommitdiff
path: root/tests/check_framework/test_urls.py
diff options
context:
space:
mode:
authorAdam Johnson <me@adamj.eu>2018-09-07 08:33:19 +0100
committerTim Graham <timograham@gmail.com>2018-09-14 11:59:56 -0400
commit245c36d7b6934fb0ca50eed2414253f4793f1ff5 (patch)
tree7e1397ca5e0ef8fc10de05a4e5f75421a29d2fa7 /tests/check_framework/test_urls.py
parentd483a5f0dc1089ac5caabed0f9b320434d2df723 (diff)
Fixed #29642 -- Added check for arguments of custom error handler views.
Diffstat (limited to 'tests/check_framework/test_urls.py')
-rw-r--r--tests/check_framework/test_urls.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/tests/check_framework/test_urls.py b/tests/check_framework/test_urls.py
index aa53af930e..cdc9595731 100644
--- a/tests/check_framework/test_urls.py
+++ b/tests/check_framework/test_urls.py
@@ -1,5 +1,5 @@
from django.conf import settings
-from django.core.checks.messages import Warning
+from django.core.checks.messages import Error, Warning
from django.core.checks.urls import (
E006, check_url_config, check_url_namespaces_unique, check_url_settings,
get_warning_for_invalid_pattern,
@@ -165,6 +165,28 @@ class UpdatedToPathTests(SimpleTestCase):
self.assertIn(expected_msg, warning.msg)
+class CheckCustomErrorHandlersTests(SimpleTestCase):
+
+ @override_settings(ROOT_URLCONF='check_framework.urls.bad_error_handlers')
+ def test_bad_handlers(self):
+ result = check_url_config(None)
+ self.assertEqual(len(result), 4)
+ for code, num_params, error in zip([400, 403, 404, 500], [2, 2, 2, 1], result):
+ with self.subTest('handler{}'.format(code)):
+ self.assertEqual(error, Error(
+ "The custom handler{} view "
+ "'check_framework.urls.bad_error_handlers.bad_handler' "
+ "does not take the correct number of arguments (request{})."
+ .format(code, ', exception' if num_params == 2 else ''),
+ id='urls.E007',
+ ))
+
+ @override_settings(ROOT_URLCONF='check_framework.urls.good_error_handlers')
+ def test_good_handlers(self):
+ result = check_url_config(None)
+ self.assertEqual(result, [])
+
+
class CheckURLSettingsTests(SimpleTestCase):
@override_settings(STATIC_URL='a/', MEDIA_URL='b/')