]> granicus.if.org Git - python/commitdiff
#11062: Fix adding a message from file to Babyl mailbox
authorPetri Lehtinen <petri@digip.org>
Wed, 15 Aug 2012 11:22:46 +0000 (14:22 +0300)
committerPetri Lehtinen <petri@digip.org>
Wed, 15 Aug 2012 11:25:41 +0000 (14:25 +0300)
Lib/mailbox.py
Lib/test/test_mailbox.py
Misc/NEWS

index 61683674ff7ab95e3d9febae9f6dfbddb165a6be..3fe0ce42883055d05782c1c6d488514a3d5429ad 100644 (file)
@@ -1386,9 +1386,9 @@ class Babyl(_singlefileMailbox):
                 line = message.readline()
                 self._file.write(line.replace('\n', os.linesep))
                 if line == '\n' or line == '':
-                    self._file.write('*** EOOH ***' + os.linesep)
                     if first_pass:
                         first_pass = False
+                        self._file.write('*** EOOH ***' + os.linesep)
                         message.seek(original_pos)
                     else:
                         break
index d479bf85f1ca9795430bdd33815fafd8510c3677..5069aac77de061d4df32ace5e2ac4be66cb5bc54 100644 (file)
@@ -8,6 +8,7 @@ import email.message
 import re
 import shutil
 import StringIO
+import tempfile
 from test import test_support
 import unittest
 import mailbox
@@ -75,6 +76,18 @@ class TestMailbox(TestBase):
         for i in (1, 2, 3, 4):
             self._check_sample(self._box[keys[i]])
 
+    def test_add_file(self):
+        with tempfile.TemporaryFile('w+') as f:
+            f.write(_sample_message)
+            f.seek(0)
+            key = self._box.add(f)
+        self.assertEqual(self._box.get_string(key).split('\n'),
+            _sample_message.split('\n'))
+
+    def test_add_StringIO(self):
+        key = self._box.add(StringIO.StringIO(self._template % "0"))
+        self.assertEqual(self._box.get_string(key), self._template % "0")
+
     def test_remove(self):
         # Remove messages using remove()
         self._test_remove_or_delitem(self._box.remove)
index ef7ecb8681f180e08240fda7b11c17c738b9f49d..3a9e2832a937872be241647e8f5f396b13ba56e9 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -92,6 +92,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #11062: Fix adding a message from file to Babyl mailbox.
+
 - Issue #15646: Prevent equivalent of a fork bomb when using
   multiprocessing on Windows without the "if __name__ == '__main__'"
   idiom.