summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-11-09 12:11:58 +0100
committerClaude Paroz <claude@2xlibre.net>2013-11-09 12:11:58 +0100
commite6dd70b4dba3b7d812fecda7288c9707990ea71b (patch)
tree7dc29fbfd52ed35cdfc8a7f2b3265a9a456e9484
parent7e714827ead50f77aa82394cc2511ff96ab67fa4 (diff)
Fixed #21383 -- Added request details in SuspiciousOperation messages
-rw-r--r--django/core/handlers/base.py7
-rw-r--r--django/test/utils.py4
-rw-r--r--tests/logging_tests/tests.py9
3 files changed, 17 insertions, 3 deletions
diff --git a/django/core/handlers/base.py b/django/core/handlers/base.py
index bf65687d5c..587cbae2c3 100644
--- a/django/core/handlers/base.py
+++ b/django/core/handlers/base.py
@@ -174,7 +174,12 @@ class BaseHandler(object):
# The security logger receives events for all SuspiciousOperations
security_logger = logging.getLogger('django.security.%s' %
e.__class__.__name__)
- security_logger.error(force_text(e))
+ security_logger.error(
+ force_text(e),
+ extra={
+ 'status_code': 400,
+ 'request': request
+ })
try:
callback, param_dict = resolver.resolve400()
diff --git a/django/test/utils.py b/django/test/utils.py
index 781fa37beb..1599a5358b 100644
--- a/django/test/utils.py
+++ b/django/test/utils.py
@@ -407,8 +407,8 @@ def patch_logger(logger_name, log_level):
"""
calls = []
- def replacement(msg):
- calls.append(msg)
+ def replacement(msg, *args, **kwargs):
+ calls.append(msg % args)
logger = logging.getLogger(logger_name)
orig = getattr(logger, log_level)
setattr(logger, log_level, replacement)
diff --git a/tests/logging_tests/tests.py b/tests/logging_tests/tests.py
index 1b3a20cc24..1f9c8920c9 100644
--- a/tests/logging_tests/tests.py
+++ b/tests/logging_tests/tests.py
@@ -370,3 +370,12 @@ class SecurityLoggerTest(TestCase):
self.client.get('/suspicious_spec/')
self.assertEqual(len(calls), 1)
self.assertEqual(calls[0], 'dubious')
+
+ @override_settings(
+ ADMINS=(('admin', 'admin@example.com'),),
+ DEBUG=False,
+ )
+ def test_suspicious_email_admins(self):
+ self.client.get('/suspicious/')
+ self.assertEqual(len(mail.outbox), 1)
+ self.assertIn('path:/suspicious/,', mail.outbox[0].body)