Commit db75bd6d authored by R David Murray's avatar R David Murray

#11558: Better message if attach called on non-multipart.

Original patch by Varun Sharma.
parent 49abb6f9
......@@ -203,7 +203,11 @@ class Message:
if self._payload is None:
self._payload = [payload]
else:
self._payload.append(payload)
try:
self._payload.append(payload)
except AttributeError:
raise TypeError("Attach is not valid on a message with a"
" non-multipart payload")
def get_payload(self, i=None, decode=False):
"""Return a reference to the payload.
......
......@@ -124,6 +124,14 @@ class TestMessageAPI(TestEmailBase):
msg.set_payload([])
self.assertEqual(msg.get_payload(), [])
def test_attach_when_payload_is_string(self):
msg = Message()
msg['Content-Type'] = 'multipart/mixed'
msg.set_payload('string payload')
sub_msg = MIMEMessage(Message())
self.assertRaisesRegex(TypeError, "[Aa]ttach.*non-multipart",
msg.attach, sub_msg)
def test_get_charsets(self):
eq = self.assertEqual
......
......@@ -1188,6 +1188,7 @@ Daniel Shahaf
Ha Shao
Mark Shannon
Richard Shapiro
Varun Sharma
Vlad Shcherbina
Justin Sheehy
Charlie Shepherd
......
......@@ -20,6 +20,10 @@ Core and Builtins
Library
-------
- Issue #11558: ``email.message.Message.attach`` now returns a more
useful error message if ``attach`` is called on a message for which
``is_multipart`` is False.
- Issue #20283: RE pattern methods now accept the string keyword parameters
as documented. The pattern and source keyword parameters are left as
deprecated aliases.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment