diff options
| author | Adam Johnson <me@adamj.eu> | 2018-09-07 08:33:19 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-09-14 11:59:56 -0400 |
| commit | 245c36d7b6934fb0ca50eed2414253f4793f1ff5 (patch) | |
| tree | 7e1397ca5e0ef8fc10de05a4e5f75421a29d2fa7 /tests/check_framework/test_urls.py | |
| parent | d483a5f0dc1089ac5caabed0f9b320434d2df723 (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.py | 24 |
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/') |
