From: mircea-cosbuc Date: Mon, 12 Jun 2017 06:43:41 +0000 (+0200) Subject: [email] bpo-29478: Fix passing max_line_length=None from Compat32 policy (GH-595) X-Git-Tag: v3.7.0a1~619 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b459f7482612d340b88b62edc024628595ec6337;p=thirdparty%2FPython%2Fcpython.git [email] bpo-29478: Fix passing max_line_length=None from Compat32 policy (GH-595) If max_line_length=None is specified while using the Compat32 policy, it is no longer ignored. --- diff --git a/Lib/email/_policybase.py b/Lib/email/_policybase.py index df4649676aed..c9cbadd2a80c 100644 --- a/Lib/email/_policybase.py +++ b/Lib/email/_policybase.py @@ -361,8 +361,12 @@ class Compat32(Policy): # Assume it is a Header-like object. h = value if h is not None: - parts.append(h.encode(linesep=self.linesep, - maxlinelen=self.max_line_length)) + # The Header class interprets a value of None for maxlinelen as the + # default value of 78, as recommended by RFC 2822. + maxlinelen = 0 + if self.max_line_length is not None: + maxlinelen = self.max_line_length + parts.append(h.encode(linesep=self.linesep, maxlinelen=maxlinelen)) parts.append(self.linesep) return ''.join(parts) diff --git a/Lib/test/test_email/test_generator.py b/Lib/test/test_email/test_generator.py index 7c8877fdcb09..c4f182903afe 100644 --- a/Lib/test/test_email/test_generator.py +++ b/Lib/test/test_email/test_generator.py @@ -162,6 +162,13 @@ class TestGeneratorBase: g.flatten(msg) self.assertEqual(s.getvalue(), self.typ(expected)) + def test_compat32_max_line_length_does_not_fold_when_none(self): + msg = self.msgmaker(self.typ(self.refold_long_expected[0])) + s = self.ioclass() + g = self.genclass(s, policy=policy.compat32.clone(max_line_length=None)) + g.flatten(msg) + self.assertEqual(s.getvalue(), self.typ(self.refold_long_expected[0])) + class TestGenerator(TestGeneratorBase, TestEmailBase): diff --git a/Misc/ACKS b/Misc/ACKS index 74ac15b89ece..1ae9b6fe5d0a 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -310,6 +310,7 @@ Garrett Cooper Greg Copeland Ian Cordasco Aldo Cortesi +Mircea Cosbuc David Costanzo Scott Cotton Greg Couch diff --git a/Misc/NEWS b/Misc/NEWS index 98d8ef96b3e6..88f1631c3157 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -142,6 +142,9 @@ Core and Builtins - bpo-29546: Improve from-import error message with location +- bpo-29478: If max_line_length=None is specified while using the Compat32 policy, + it is no longer ignored. Patch by Mircea Cosbuc. + - Issue #29319: Prevent RunMainFromImporter overwriting sys.path[0]. - Issue #29337: Fixed possible BytesWarning when compare the code objects.