From: Facundo Batista Date: Sat, 19 Jan 2008 12:32:27 +0000 (+0000) Subject: Fix issue #1822: MIMEMultipart.is_multipart() behaves correctly for a X-Git-Tag: v2.6a1~547 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2b1b195d396ee92260425b17ee5d17b7f4525485;p=thirdparty%2FPython%2Fcpython.git Fix issue #1822: MIMEMultipart.is_multipart() behaves correctly for a just-created (and empty) instance. Added tests for this. Thanks Jonathan Share. --- diff --git a/Lib/email/mime/multipart.py b/Lib/email/mime/multipart.py index 5c8c9dbc4d4a..96618650c519 100644 --- a/Lib/email/mime/multipart.py +++ b/Lib/email/mime/multipart.py @@ -34,6 +34,12 @@ class MIMEMultipart(MIMEBase): keyword arguments (or passed into the _params argument). """ MIMEBase.__init__(self, 'multipart', _subtype, **_params) + + # Initialise _payload to an empty list as the Message superclass's + # implementation of is_multipart assumes that _payload is a list for + # multipart messages. + self._payload = [] + if _subparts: for p in _subparts: self.attach(p) diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py index 5a86da8a3c37..3a68f02b4880 100644 --- a/Lib/email/test/test_email.py +++ b/Lib/email/test/test_email.py @@ -1861,6 +1861,9 @@ message 2 eq(msg.get_payload(0), text1) eq(msg.get_payload(1), text2) + def test_default_multipart_constructor(self): + msg = MIMEMultipart() + self.assertTrue(msg.is_multipart()) # A general test of parser->model->generator idempotency. IOW, read a message diff --git a/Misc/NEWS b/Misc/NEWS index cc74e16f471a..35d96344be8d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -367,6 +367,9 @@ Core and builtins Library ------- +- #1822: MIMEMultipart.is_multipart() behaves correctly for a just-created + (and empty) instance. Thanks Jonathan Share. + - #1861: Added an attribute to the sched module which returns an ordered list of upcoming events (displayed as named tuples).