mirror of
https://github.com/python/cpython
synced 2024-10-05 07:19:38 +00:00
[3.12] GH-gh-75705: Set unixfrom envelope in mailbox._mboxMMDF (GH-107117) (GH-115098)
(cherry picked from commit 76108b8b05
)
Co-authored-by: Matthieu Caneill <matthieucan@users.noreply.github.com>
This commit is contained in:
parent
5fb2204ad4
commit
831b95d9b9
|
@ -778,10 +778,11 @@ def get_message(self, key):
|
|||
"""Return a Message representation or raise a KeyError."""
|
||||
start, stop = self._lookup(key)
|
||||
self._file.seek(start)
|
||||
from_line = self._file.readline().replace(linesep, b'')
|
||||
from_line = self._file.readline().replace(linesep, b'').decode('ascii')
|
||||
string = self._file.read(stop - self._file.tell())
|
||||
msg = self._message_factory(string.replace(linesep, b'\n'))
|
||||
msg.set_from(from_line[5:].decode('ascii'))
|
||||
msg.set_unixfrom(from_line)
|
||||
msg.set_from(from_line[5:])
|
||||
return msg
|
||||
|
||||
def get_string(self, key, from_=False):
|
||||
|
|
|
@ -1027,12 +1027,14 @@ def test_add_from_string(self):
|
|||
# Add a string starting with 'From ' to the mailbox
|
||||
key = self._box.add('From foo@bar blah\nFrom: foo\n\n0\n')
|
||||
self.assertEqual(self._box[key].get_from(), 'foo@bar blah')
|
||||
self.assertEqual(self._box[key].get_unixfrom(), 'From foo@bar blah')
|
||||
self.assertEqual(self._box[key].get_payload(), '0\n')
|
||||
|
||||
def test_add_from_bytes(self):
|
||||
# Add a byte string starting with 'From ' to the mailbox
|
||||
key = self._box.add(b'From foo@bar blah\nFrom: foo\n\n0\n')
|
||||
self.assertEqual(self._box[key].get_from(), 'foo@bar blah')
|
||||
self.assertEqual(self._box[key].get_unixfrom(), 'From foo@bar blah')
|
||||
self.assertEqual(self._box[key].get_payload(), '0\n')
|
||||
|
||||
def test_add_mbox_or_mmdf_message(self):
|
||||
|
@ -1545,18 +1547,23 @@ def test_initialize_with_unixfrom(self):
|
|||
msg = mailbox.Message(_sample_message)
|
||||
msg.set_unixfrom('From foo@bar blah')
|
||||
msg = mailbox.mboxMessage(msg)
|
||||
self.assertEqual(msg.get_from(), 'foo@bar blah', msg.get_from())
|
||||
self.assertEqual(msg.get_from(), 'foo@bar blah')
|
||||
self.assertEqual(msg.get_unixfrom(), 'From foo@bar blah')
|
||||
|
||||
def test_from(self):
|
||||
# Get and set "From " line
|
||||
msg = mailbox.mboxMessage(_sample_message)
|
||||
self._check_from(msg)
|
||||
self.assertIsNone(msg.get_unixfrom())
|
||||
msg.set_from('foo bar')
|
||||
self.assertEqual(msg.get_from(), 'foo bar')
|
||||
self.assertIsNone(msg.get_unixfrom())
|
||||
msg.set_from('foo@bar', True)
|
||||
self._check_from(msg, 'foo@bar')
|
||||
self.assertIsNone(msg.get_unixfrom())
|
||||
msg.set_from('blah@temp', time.localtime())
|
||||
self._check_from(msg, 'blah@temp')
|
||||
self.assertIsNone(msg.get_unixfrom())
|
||||
|
||||
def test_flags(self):
|
||||
# Use get_flags(), set_flags(), add_flag(), remove_flag()
|
||||
|
@ -1744,6 +1751,7 @@ def test_maildir_to_mboxmmdf(self):
|
|||
self.assertEqual(msg.get_flags(), result)
|
||||
self.assertEqual(msg.get_from(), 'MAILER-DAEMON %s' %
|
||||
time.asctime(time.gmtime(0.0)))
|
||||
self.assertIsNone(msg.get_unixfrom())
|
||||
msg_maildir.set_subdir('cur')
|
||||
self.assertEqual(class_(msg_maildir).get_flags(), 'RODFA')
|
||||
|
||||
|
@ -1792,10 +1800,12 @@ def test_mboxmmdf_to_mboxmmdf(self):
|
|||
msg_mboxMMDF = class_(_sample_message)
|
||||
msg_mboxMMDF.set_flags('RODFA')
|
||||
msg_mboxMMDF.set_from('foo@bar')
|
||||
self.assertIsNone(msg_mboxMMDF.get_unixfrom())
|
||||
for class2_ in (mailbox.mboxMessage, mailbox.MMDFMessage):
|
||||
msg2 = class2_(msg_mboxMMDF)
|
||||
self.assertEqual(msg2.get_flags(), 'RODFA')
|
||||
self.assertEqual(msg2.get_from(), 'foo@bar')
|
||||
self.assertIsNone(msg2.get_unixfrom())
|
||||
|
||||
def test_mboxmmdf_to_mh(self):
|
||||
# Convert mboxMessage and MMDFMessage to MHMessage
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Set unixfrom envelope in :class:`mailbox.mbox` and :class:`mailbox.MMDF`.
|
Loading…
Reference in a new issue