Fix the change made for issue 1243654.

Surprisingly, it turns out there was no test that exercised this code path.
This commit is contained in:
R. David Murray 2010-12-21 18:07:59 +00:00
parent 92812028f2
commit 73a559d0c9
2 changed files with 13 additions and 1 deletions

View File

@ -226,7 +226,8 @@ class Generator:
# Create a boundary that doesn't appear in any of the
# message texts.
alltext = self._encoded_NL.join(msgtexts)
msg.set_boundary(self._make_boundary(alltext))
boundary = self._make_boundary(alltext)
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)

View File

@ -180,6 +180,17 @@ class TestMessageAPI(TestEmailBase):
self.assertRaises(errors.HeaderParseError,
msg.set_boundary, 'BOUNDARY')
def test_make_boundary(self):
msg = MIMEMultipart('form-data')
# Note that when the boundary gets created is an implementation
# detail and might change.
self.assertEqual(msg.items()[0][1], 'multipart/form-data')
# Trigger creation of boundary
msg.as_string()
self.assertEqual(msg.items()[0][1][:33],
'multipart/form-data; boundary="==')
# XXX: there ought to be tests of the uniqueness of the boundary, too.
def test_message_rfc822_only(self):
# Issue 7970: message/rfc822 not in multipart parsed by
# HeaderParser caused an exception when flattened.