[Python-Dev] [Python-checkins] cpython (merge 3.2 -> default): Merge #15232: correctly mangle From lines in MIME preamble and epilogue
Meador Inge
meadori at gmail.com
Mon Jul 23 07:34:02 CEST 2012
On Sun, Jul 22, 2012 at 8:55 PM, r.david.murray
<python-checkins at python.org> wrote:
> http://hg.python.org/cpython/rev/80b81658455b
> changeset: 78246:80b81658455b
> parent: 78244:c43d73277756
> parent: 78245:b97f65f2298d
> user: R David Murray <rdmurray at bitdance.com>
> date: Sun Jul 22 21:53:54 2012 -0400
> summary:
> Merge #15232: correctly mangle From lines in MIME preamble and epilogue
>
> files:
> Lib/email/generator.py | 12 ++++++++-
> Lib/test/test_email/test_email.py | 22 +++++++++++++++++++
> Misc/NEWS | 3 ++
> 3 files changed, 35 insertions(+), 2 deletions(-)
I'm not quite sure what happened, but something seems to have gone wrong
with this merge. After doing the following while on the "default" branch:
$ hg merge 3.2
I see:
$ hg st
M Lib/email/generator.py
M Lib/test/test_email/test_email.py
M Misc/NEWS
and a bunch of conflicts in 'Misc/NEWS'.
>
> diff --git a/Lib/email/generator.py b/Lib/email/generator.py
> --- a/Lib/email/generator.py
> +++ b/Lib/email/generator.py
> @@ -252,7 +252,11 @@
> msg.set_boundary(boundary)
> # If there's a preamble, write it out, with a trailing CRLF
> if msg.preamble is not None:
> - self.write(msg.preamble + self._NL)
> + if self._mangle_from_:
> + preamble = fcre.sub('>From ', msg.preamble)
> + else:
> + preamble = msg.preamble
> + self.write(preamble + self._NL)
> # dash-boundary transport-padding CRLF
> self.write('--' + boundary + self._NL)
> # body-part
> @@ -270,7 +274,11 @@
> self.write(self._NL + '--' + boundary + '--')
> if msg.epilogue is not None:
> self.write(self._NL)
> - self.write(msg.epilogue)
> + if self._mangle_from_:
> + epilogue = fcre.sub('>From ', msg.epilogue)
> + else:
> + epilogue = msg.epilogue
> + self.write(epilogue)
>
> def _handle_multipart_signed(self, msg):
> # The contents of signed parts has to stay unmodified in order to keep
> diff --git a/Lib/test/test_email/test_email.py b/Lib/test/test_email/test_email.py
> --- a/Lib/test/test_email/test_email.py
> +++ b/Lib/test/test_email/test_email.py
> @@ -1283,6 +1283,28 @@
> Blah blah blah
> """)
>
> + def test_mangle_from_in_preamble_and_epilog(self):
> + s = StringIO()
> + g = Generator(s, mangle_from_=True)
> + msg = email.message_from_string(textwrap.dedent("""\
> + From: foo at bar.com
> + Mime-Version: 1.0
> + Content-Type: multipart/mixed; boundary=XXX
> +
> + From somewhere unknown
> +
> + --XXX
> + Content-Type: text/plain
> +
> + foo
> +
> + --XXX--
> +
> + From somewhere unknowable
> + """))
> + g.flatten(msg)
> + self.assertEqual(len([1 for x in s.getvalue().split('\n')
> + if x.startswith('>From ')]), 2)
>
>
> # Test the basic MIMEAudio class
> diff --git a/Misc/NEWS b/Misc/NEWS
> --- a/Misc/NEWS
> +++ b/Misc/NEWS
> @@ -52,6 +52,9 @@
> Library
> -------
>
> +- Issue #15232: when mangle_from is True, email.Generator now correctly mangles
> + lines that start with 'From' that occur in a MIME preamble or epilogue.
> +
> - Issue #15094: Incorrectly placed #endif in _tkinter.c.
> Patch by Serhiy Storchaka.
>
>
> --
> Repository URL: http://hg.python.org/cpython
>
> _______________________________________________
> Python-checkins mailing list
> Python-checkins at python.org
> http://mail.python.org/mailman/listinfo/python-checkins
>
--
# Meador
More information about the Python-Dev
mailing list