summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/mailbox.py2
-rw-r--r--Lib/test/test_mailbox.py28
-rw-r--r--Misc/NEWS.d/next/Library/2018-10-13-18-16-20.bpo-31522.rWBb43.rst1
3 files changed, 30 insertions, 1 deletions
diff --git a/Lib/mailbox.py b/Lib/mailbox.py
index 056251d..5b4e864 100644
--- a/Lib/mailbox.py
+++ b/Lib/mailbox.py
@@ -784,7 +784,7 @@ class _mboxMMDF(_singlefileMailbox):
def get_string(self, key, from_=False):
"""Return a string representation or raise a KeyError."""
return email.message_from_bytes(
- self.get_bytes(key)).as_string(unixfrom=from_)
+ self.get_bytes(key, from_)).as_string(unixfrom=from_)
def get_bytes(self, key, from_=False):
"""Return a string representation or raise a KeyError."""
diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py
index 3807b95..a75c8cb 100644
--- a/Lib/test/test_mailbox.py
+++ b/Lib/test/test_mailbox.py
@@ -988,6 +988,34 @@ class _TestMboxMMDF(_TestSingleFile):
with open(self._path) as f:
self.assertEqual(f.readlines(), [])
+ def test_get_bytes_from(self):
+ # Get bytes representations of messages with _unixfrom.
+ unixfrom = 'From foo@bar blah\n'
+ key0 = self._box.add(unixfrom + self._template % 0)
+ key1 = self._box.add(unixfrom + _sample_message)
+ self.assertEqual(self._box.get_bytes(key0, from_=False),
+ (self._template % 0).encode('ascii'))
+ self.assertEqual(self._box.get_bytes(key1, from_=False),
+ _bytes_sample_message)
+ self.assertEqual(self._box.get_bytes(key0, from_=True),
+ (unixfrom + self._template % 0).encode('ascii'))
+ self.assertEqual(self._box.get_bytes(key1, from_=True),
+ unixfrom.encode('ascii') + _bytes_sample_message)
+
+ def test_get_string_from(self):
+ # Get string representations of messages with _unixfrom.
+ unixfrom = 'From foo@bar blah\n'
+ key0 = self._box.add(unixfrom + self._template % 0)
+ key1 = self._box.add(unixfrom + _sample_message)
+ self.assertEqual(self._box.get_string(key0, from_=False),
+ self._template % 0)
+ self.assertEqual(self._box.get_string(key1, from_=False).split('\n'),
+ _sample_message.split('\n'))
+ self.assertEqual(self._box.get_string(key0, from_=True),
+ unixfrom + self._template % 0)
+ self.assertEqual(self._box.get_string(key1, from_=True).split('\n'),
+ (unixfrom + _sample_message).split('\n'))
+
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')
diff --git a/Misc/NEWS.d/next/Library/2018-10-13-18-16-20.bpo-31522.rWBb43.rst b/Misc/NEWS.d/next/Library/2018-10-13-18-16-20.bpo-31522.rWBb43.rst
new file mode 100644
index 0000000..5aea717
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2018-10-13-18-16-20.bpo-31522.rWBb43.rst
@@ -0,0 +1 @@
+The `mailbox.mbox.get_string` function *from_* parameter can now successfully be set to a non-default value.