1
0
mirror of https://github.com/django/django.git synced 2025-10-24 14:16:09 +00:00

Fixed #16568 -- Added RequireDebugFalse filter to prevent sending 500 error emails when DEBUG is True in projects with no explicit LOGGING setting. Thanks to Andreas Pelme for report and patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16840 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Carl Meyer
2011-09-16 16:41:38 +00:00
parent f9dad46d36
commit 343004c4de
7 changed files with 35 additions and 30 deletions

View File

@@ -4,10 +4,10 @@ import copy
from django.conf import compat_patch_logging_config
from django.test import TestCase
from django.test.utils import override_settings
from django.utils.log import CallbackFilter, getLogger
from django.core import mail
from django.utils.log import CallbackFilter, RequireDebugFalse, getLogger
from django.test.utils import override_settings
from django.core import mail
# logging config prior to using filter with mail_admins
@@ -30,7 +30,6 @@ OLD_LOGGING = {
}
class PatchLoggingConfigTest(TestCase):
"""
Tests for backward-compat shim for #16288. These tests should be removed in
@@ -50,28 +49,30 @@ class PatchLoggingConfigTest(TestCase):
config["handlers"]["mail_admins"]["filters"],
['require_debug_false'])
def test_filter_configuration(self):
"""
Test that the debug-false filter is a CallbackFilter with a callback
that works as expected (returns ``not DEBUG``).
Test that the auto-added require_debug_false filter is an instance of
`RequireDebugFalse` filter class.
"""
config = copy.deepcopy(OLD_LOGGING)
compat_patch_logging_config(config)
flt = config["filters"]["require_debug_false"]
self.assertEqual(flt["()"], "django.utils.log.RequireDebugFalse")
self.assertEqual(flt["()"], "django.utils.log.CallbackFilter")
def test_require_debug_false_filter(self):
"""
Test the RequireDebugFalse filter class.
callback = flt["callback"]
"""
filter_ = RequireDebugFalse()
with self.settings(DEBUG=True):
self.assertEqual(callback("record is not used"), False)
self.assertEqual(filter_.filter("record is not used"), False)
with self.settings(DEBUG=False):
self.assertEqual(callback("record is not used"), True)
self.assertEqual(filter_.filter("record is not used"), True)
def test_no_patch_if_filters_key_exists(self):
"""
@@ -110,6 +111,7 @@ class CallbackFilterTest(TestCase):
def test_passes_on_record(self):
collector = []
def _callback(record):
collector.append(record)
return True