summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2011-03-16 22:26:23 (GMT)
committerR David Murray <rdmurray@bitdance.com>2011-03-16 22:26:23 (GMT)
commitde91276a5c90b9d3e42866054e48d255a37981b3 (patch)
tree31656289206bf4558578ef3d6c0791282330e419 /Lib
parent6d94bd470e3f4aa1dc7295b034553509ace2c654 (diff)
downloadcpython-de91276a5c90b9d3e42866054e48d255a37981b3.zip
cpython-de91276a5c90b9d3e42866054e48d255a37981b3.tar.gz
cpython-de91276a5c90b9d3e42866054e48d255a37981b3.tar.bz2
#11401: handle headers with no value.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/email/header.py2
-rw-r--r--Lib/email/test/test_email.py7
2 files changed, 8 insertions, 1 deletions
diff --git a/Lib/email/header.py b/Lib/email/header.py
index 43220df..da739d5 100644
--- a/Lib/email/header.py
+++ b/Lib/email/header.py
@@ -304,7 +304,7 @@ class Header:
self._continuation_ws, splitchars)
for string, charset in self._chunks:
lines = string.splitlines()
- formatter.feed(lines[0], charset)
+ formatter.feed(lines[0] if lines else '', charset)
for line in lines[1:]:
formatter.newline()
if charset.header_encoding is not None:
diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py
index 6a88b16..4268a25 100644
--- a/Lib/email/test/test_email.py
+++ b/Lib/email/test/test_email.py
@@ -3296,6 +3296,13 @@ A very long line that must get split to something other than at the
h = Header('文', charset='shift_jis')
self.assertEqual(h.encode(), '=?iso-2022-jp?b?GyRCSjgbKEI=?=')
+ def test_flatten_header_with_no_value(self):
+ # Issue 11401 (regression from email 4.x) Note that the space after
+ # the header doesn't reflect the input, but this is also the way
+ # email 4.x behaved. At some point it would be nice to fix that.
+ msg = email.message_from_string("EmptyHeader:")
+ self.assertEqual(str(msg), "EmptyHeader: \n\n")
+
# Test RFC 2231 header parameters (en/de)coding