mirror of https://github.com/django/django.git
Fixed #24681 -- Removed Unicode bug in BrokenLinkEmailMiddleware
This commit is contained in:
parent
6e8cb75e3e
commit
4cd727095d
|
@ -127,7 +127,7 @@ class BrokenLinkEmailsMiddleware(object):
|
||||||
referer = force_text(request.META.get('HTTP_REFERER', ''), errors='replace')
|
referer = force_text(request.META.get('HTTP_REFERER', ''), errors='replace')
|
||||||
|
|
||||||
if not self.is_ignorable_request(request, path, domain, referer):
|
if not self.is_ignorable_request(request, path, domain, referer):
|
||||||
ua = request.META.get('HTTP_USER_AGENT', '<none>')
|
ua = force_text(request.META.get('HTTP_USER_AGENT', '<none>'), errors='replace')
|
||||||
ip = request.META.get('REMOTE_ADDR', '<none>')
|
ip = request.META.get('REMOTE_ADDR', '<none>')
|
||||||
mail_managers(
|
mail_managers(
|
||||||
"Broken %slink on %s" % (
|
"Broken %slink on %s" % (
|
||||||
|
|
|
@ -320,6 +320,16 @@ class BrokenLinkEmailsMiddlewareTest(TestCase):
|
||||||
BrokenLinkEmailsMiddleware().process_response(self.req, self.resp)
|
BrokenLinkEmailsMiddleware().process_response(self.req, self.resp)
|
||||||
self.assertEqual(len(mail.outbox), 1)
|
self.assertEqual(len(mail.outbox), 1)
|
||||||
|
|
||||||
|
@skipIf(six.PY3, "HTTP_USER_AGENT is str type on Python 3")
|
||||||
|
def test_404_error_nonascii_user_agent(self):
|
||||||
|
# Such user agent strings should not happen, but anyway, if it happens,
|
||||||
|
# let's not crash
|
||||||
|
self.req.META['HTTP_REFERER'] = '/another/url/'
|
||||||
|
self.req.META['HTTP_USER_AGENT'] = b'\xd0\xbb\xd0\xb8\xff\xff'
|
||||||
|
BrokenLinkEmailsMiddleware().process_response(self.req, self.resp)
|
||||||
|
self.assertEqual(len(mail.outbox), 1)
|
||||||
|
self.assertIn('User agent: \u043b\u0438\ufffd\ufffd\n', mail.outbox[0].body)
|
||||||
|
|
||||||
def test_custom_request_checker(self):
|
def test_custom_request_checker(self):
|
||||||
class SubclassedMiddleware(BrokenLinkEmailsMiddleware):
|
class SubclassedMiddleware(BrokenLinkEmailsMiddleware):
|
||||||
ignored_user_agent_patterns = (re.compile(r'Spider.*'),
|
ignored_user_agent_patterns = (re.compile(r'Spider.*'),
|
||||||
|
|
Loading…
Reference in New Issue