Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Lib/email/contentmanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ def embedded_body(lines): return linesep.join(lines) + linesep
def normal_body(lines): return b'\n'.join(lines) + b'\n'
if cte==None:
# Use heuristics to decide on the "best" encoding.
if max(len(x) for x in lines) <= policy.max_line_length:
if max((len(x) for x in lines), default = 0) <= policy.max_line_length:
Comment thread
msapiro marked this conversation as resolved.
Resolved
try:
return '7bit', normal_body(lines).decode('ascii')
except UnicodeDecodeError:
Expand Down
13 changes: 13 additions & 0 deletions Lib/test/test_email/test_contentmanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,19 @@ def test_set_text_plain(self):
self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
self.assertEqual(m.get_content(), content)

def test_set_text_plain_null(self):
m = self._make_message()
content = ''
raw_data_manager.set_content(m, content)
self.assertEqual(str(m), textwrap.dedent("""\
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit


"""))
self.assertEqual(m.get_payload(decode=True).decode('utf-8'), '\n')
self.assertEqual(m.get_content(), '\n')

def test_set_text_html(self):
m = self._make_message()
content = "<p>Simple message.</p>\n"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fixed email.contentmanager to allow set_content() to set a null string.