mirror of https://github.com/django/django.git
Refs #10188 -- Added tests for BadHeaderErrors when HTTP header with newlines cannot be encoded/decoded.
This commit is contained in:
parent
d436554861
commit
9bde906fb2
|
@ -364,6 +364,27 @@ class HttpResponseTests(SimpleTestCase):
|
||||||
with self.assertRaises(BadHeaderError):
|
with self.assertRaises(BadHeaderError):
|
||||||
r.headers.__setitem__("test\nstr", "test")
|
r.headers.__setitem__("test\nstr", "test")
|
||||||
|
|
||||||
|
def test_encoded_with_newlines_in_headers(self):
|
||||||
|
"""
|
||||||
|
Keys & values which throw a UnicodeError when encoding/decoding should
|
||||||
|
still be checked for newlines and re-raised as a BadHeaderError.
|
||||||
|
These specifically would still throw BadHeaderError after decoding
|
||||||
|
successfully, because the newlines are sandwiched in the middle of the
|
||||||
|
string and email.Header leaves those as they are.
|
||||||
|
"""
|
||||||
|
r = HttpResponse()
|
||||||
|
pairs = (
|
||||||
|
("†\nother", "test"),
|
||||||
|
("test", "†\nother"),
|
||||||
|
(b"\xe2\x80\xa0\nother", "test"),
|
||||||
|
("test", b"\xe2\x80\xa0\nother"),
|
||||||
|
)
|
||||||
|
msg = "Header values can't contain newlines"
|
||||||
|
for key, value in pairs:
|
||||||
|
with self.subTest(key=key, value=value):
|
||||||
|
with self.assertRaisesMessage(BadHeaderError, msg):
|
||||||
|
r[key] = value
|
||||||
|
|
||||||
def test_dict_behavior(self):
|
def test_dict_behavior(self):
|
||||||
"""
|
"""
|
||||||
Test for bug #14020: Make HttpResponse.get work like dict.get
|
Test for bug #14020: Make HttpResponse.get work like dict.get
|
||||||
|
|
Loading…
Reference in New Issue