forked from Disroot/gpg-lacre
Handle missing Content-Type properly
- ContentManager sets default Content-Type even if it was missing in the original message. - Make sure that when Content-Type is missing, copying parameters doesn't raise an error. - Add a unit-test to check that.
This commit is contained in:
parent
07fb8d6ae8
commit
a30b5e7577
2 changed files with 15 additions and 1 deletions
|
@ -209,7 +209,7 @@ def _rewrap_payload(message: EmailMessage) -> MIMEPart:
|
|||
wrapper.set_type(message.get_content_type())
|
||||
|
||||
# Copy all Content-Type parameters.
|
||||
for (pname, pvalue) in message.get_params():
|
||||
for (pname, pvalue) in message.get_params(failobj=list()):
|
||||
# Skip MIME type that's also returned by get_params().
|
||||
if not '/' in pname:
|
||||
wrapper.set_param(pname, pvalue)
|
||||
|
|
|
@ -40,3 +40,17 @@ class LacreCoreTest(unittest.TestCase):
|
|||
'only content and content-type should be copied')
|
||||
self.assertEqual(rewrapped.get_content_type(), 'text/plain',
|
||||
'rewrapped part should have initial message\'s content-type')
|
||||
|
||||
def test_payload_wrapping_wo_content_type(self):
|
||||
m = EmailMessage()
|
||||
m.set_payload('This is a payload.\r\n'
|
||||
+ '\r\n'
|
||||
+ 'It has two paragraphs.\r\n')
|
||||
m['Subject'] = 'Source message'
|
||||
|
||||
rewrapped = lacre.core._rewrap_payload(m)
|
||||
|
||||
self.assertFalse('Subject' in rewrapped,
|
||||
'only content and content-type should be copied')
|
||||
self.assertEqual(rewrapped.get_content_type(), 'text/plain',
|
||||
'rewrapped part should have initial message\'s content-type')
|
||||
|
|
Loading…
Reference in a new issue