1
0
mirror of https://github.com/django/django.git synced 2025-10-31 01:25:32 +00:00

WIP: Refs #35281 -- Unified and generalized request error handling.

This commit is contained in:
Claude Paroz
2024-10-26 19:06:15 +02:00
parent 2debd018db
commit 73b904c5e0
16 changed files with 285 additions and 66 deletions

View File

@@ -8,8 +8,9 @@ from django.core.checks.urls import (
check_url_settings,
get_warning_for_invalid_pattern,
)
from django.test import SimpleTestCase
from django.test import SimpleTestCase, ignore_warnings
from django.test.utils import override_settings
from django.utils.deprecation import RemovedInDjango61Warning
class CheckUrlConfigTests(SimpleTestCase):
@@ -243,10 +244,11 @@ class CheckCustomErrorHandlersTests(SimpleTestCase):
@override_settings(
ROOT_URLCONF="check_framework.urls.bad_function_based_error_handlers",
)
@ignore_warnings(category=RemovedInDjango61Warning)
def test_bad_function_based_handlers(self):
result = check_custom_error_handlers(None)
self.assertEqual(len(result), 4)
for code, num_params, error in zip([400, 403, 404, 500], [2, 2, 2, 1], result):
for code, error in zip([400, 403, 404, 500], result):
with self.subTest("handler{}".format(code)):
self.assertEqual(
error,
@@ -254,9 +256,7 @@ class CheckCustomErrorHandlersTests(SimpleTestCase):
"The custom handler{} view 'check_framework.urls."
"bad_function_based_error_handlers.bad_handler' "
"does not take the correct number of arguments "
"(request{}).".format(
code, ", exception" if num_params == 2 else ""
),
"(request, exception).".format(code),
id="urls.E007",
),
)
@@ -264,10 +264,11 @@ class CheckCustomErrorHandlersTests(SimpleTestCase):
@override_settings(
ROOT_URLCONF="check_framework.urls.bad_class_based_error_handlers",
)
@ignore_warnings(category=RemovedInDjango61Warning)
def test_bad_class_based_handlers(self):
result = check_custom_error_handlers(None)
self.assertEqual(len(result), 4)
for code, num_params, error in zip([400, 403, 404, 500], [2, 2, 2, 1], result):
for code, error in zip([400, 403, 404, 500], result):
with self.subTest("handler%s" % code):
self.assertEqual(
error,
@@ -275,11 +276,7 @@ class CheckCustomErrorHandlersTests(SimpleTestCase):
"The custom handler%s view 'check_framework.urls."
"bad_class_based_error_handlers.HandlerView.as_view."
"<locals>.view' does not take the correct number of "
"arguments (request%s)."
% (
code,
", exception" if num_params == 2 else "",
),
"arguments (request, exception)." % code,
id="urls.E007",
),
)
@@ -287,6 +284,7 @@ class CheckCustomErrorHandlersTests(SimpleTestCase):
@override_settings(
ROOT_URLCONF="check_framework.urls.bad_error_handlers_invalid_path"
)
@ignore_warnings(category=RemovedInDjango61Warning)
def test_bad_handlers_invalid_path(self):
result = check_custom_error_handlers(None)
paths = [
@@ -318,6 +316,7 @@ class CheckCustomErrorHandlersTests(SimpleTestCase):
@override_settings(
ROOT_URLCONF="check_framework.urls.good_function_based_error_handlers",
)
@ignore_warnings(category=RemovedInDjango61Warning)
def test_good_function_based_handlers(self):
result = check_custom_error_handlers(None)
self.assertEqual(result, [])
@@ -325,6 +324,7 @@ class CheckCustomErrorHandlersTests(SimpleTestCase):
@override_settings(
ROOT_URLCONF="check_framework.urls.good_class_based_error_handlers",
)
@ignore_warnings(category=RemovedInDjango61Warning)
def test_good_class_based_handlers(self):
result = check_custom_error_handlers(None)
self.assertEqual(result, [])