[Python-checkins] r57629 - python/branches/alex-py3k/Lib/test/test_uu.py

alexandre.vassalotti python-checkins at python.org
Wed Aug 29 01:49:07 CEST 2007


Author: alexandre.vassalotti
Date: Wed Aug 29 01:49:05 2007
New Revision: 57629

Modified:
   python/branches/alex-py3k/Lib/test/test_uu.py
Log:
Fix failing test.
Use a custom FakeFileIO class instead of StringIO for faking
stdin/stdout.


Modified: python/branches/alex-py3k/Lib/test/test_uu.py
==============================================================================
--- python/branches/alex-py3k/Lib/test/test_uu.py	(original)
+++ python/branches/alex-py3k/Lib/test/test_uu.py	Wed Aug 29 01:49:05 2007
@@ -21,6 +21,23 @@
     return (bytes("begin %03o %s\n" % (mode, filename), "ascii") +
             encodedtext + b"\n \nend\n")
 
+
+class FakeFileIO(io.TextIOWrapper):
+
+    def __init__(self, initial_value=""):
+        super(FakeFileIO, self).__init__(BytesIO(),
+                                         encoding="utf-8")
+        if initial_value:
+            if not isinstance(initial_value, basestring):
+                initial_value = str(initial_value)
+            self.write(initial_value)
+            self.seek(0)
+
+    def getvalue(self):
+        self.flush()
+        return self.buffer.getvalue().decode(self._encoding)
+
+
 class UUTest(unittest.TestCase):
 
     def test_encode(self):
@@ -76,15 +93,15 @@
         sys.stdout = self.stdout
 
     def test_encode(self):
-        sys.stdin = io.StringIO(plaintext.decode("ascii"))
-        sys.stdout = io.StringIO()
+        sys.stdin = FakeFileIO(plaintext.decode("ascii"))
+        sys.stdout = FakeFileIO()
         uu.encode("-", "-", "t1", 0o666)
         self.assertEqual(sys.stdout.getvalue(),
                          encodedtextwrapped(0o666, "t1").decode("ascii"))
 
     def test_decode(self):
-        sys.stdin = io.StringIO(encodedtextwrapped(0o666, "t1").decode("ascii"))
-        sys.stdout = io.StringIO()
+        sys.stdin = FakeFileIO(encodedtextwrapped(0o666, "t1").decode("ascii"))
+        sys.stdout = FakeFileIO()
         uu.decode("-", "-")
         stdout = sys.stdout
         sys.stdout = self.stdout


More information about the Python-checkins mailing list