diff --git a/Lib/mailbox.py b/Lib/mailbox.py index 4a44642765cc9a..cc9e2c37f28d9a 100644 --- a/Lib/mailbox.py +++ b/Lib/mailbox.py @@ -1224,6 +1224,7 @@ def get_sequences(self): with f: all_keys = set(self.keys()) for line in f: + line = line.rstrip() try: name, contents = line.split(':') keys = set() @@ -1239,7 +1240,7 @@ def get_sequences(self): del results[name] except ValueError: raise FormatError('Invalid sequence specification: %s' % - line.rstrip()) + line) return results def set_sequences(self, sequences): @@ -1291,7 +1292,7 @@ def pack(self): self._next_key = prev + 1 if len(changes) == 0: return - for name, key_list in sequences.items(): + for key_list in sequences.values(): for old, new in changes: if old in key_list: key_list[key_list.index(old)] = new diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py index 288b2c4496faa1..f22728db3ab14a 100644 --- a/Lib/test/test_mailbox.py +++ b/Lib/test/test_mailbox.py @@ -1377,6 +1377,11 @@ def test_sequences(self): msg0 = mailbox.MHMessage(self._template % 0) msg0.add_sequence('foo') key0 = self._box.add(msg0) + msg = self._box.get_message(key0) + self.assertEqual(len(msg.get_sequences()), 1) + self.assertEqual(msg.get_sequences()[0], 'foo') + self.assertEqual(msg['from'], 'foo') + self.assertEqual(msg.get_payload(), '0\n') self.assertEqual(self._box.get_sequences(), {'foo':[key0]}) msg1 = mailbox.MHMessage(self._template % 1) msg1.set_sequences(['bar', 'replied', 'foo'])