[Python-3000-checkins] r61578 - in python/branches/py3k: Lib/test/test_print.py Misc/ACKS

eric.smith python-3000-checkins at python.org
Wed Mar 19 00:48:29 CET 2008


Author: eric.smith
Date: Wed Mar 19 00:48:28 2008
New Revision: 61578

Modified:
   python/branches/py3k/   (props changed)
   python/branches/py3k/Lib/test/test_print.py
   python/branches/py3k/Misc/ACKS
Log:
Blocked 61577, implementation of print function.
Added myself to ACKS.
Added some more print tests, and made the test file mostly compatible with 2.6.

Modified: python/branches/py3k/Lib/test/test_print.py
==============================================================================
--- python/branches/py3k/Lib/test/test_print.py	(original)
+++ python/branches/py3k/Lib/test/test_print.py	Wed Mar 19 00:48:28 2008
@@ -5,7 +5,13 @@
 from test import test_support
 
 import sys
-import io
+try:
+    # 3.x
+    from io import StringIO
+except ImportError:
+    # 2.x
+    from StringIO import StringIO
+
 from contextlib import contextmanager
 
 NotDefined = object()
@@ -51,7 +57,7 @@
         return self.x
 
 class TestPrint(unittest.TestCase):
-    def check(self, expected, args, *,
+    def check(self, expected, args,
             sep=NotDefined, end=NotDefined, file=NotDefined):
         # Capture sys.stdout in a StringIO.  Call print with args,
         #  and with sep, end, and file, if they're defined.  Result
@@ -63,21 +69,21 @@
                        end is not NotDefined,
                        file is not NotDefined)]
 
-        t = io.StringIO()
+        t = StringIO()
         with stdout_redirected(t):
             fn(args, sep, end, file)
 
         self.assertEqual(t.getvalue(), expected)
 
     def test_print(self):
-        def x(expected, args, *, sep=NotDefined, end=NotDefined):
+        def x(expected, args, sep=NotDefined, end=NotDefined):
             # Run the test 2 ways: not using file, and using
             #  file directed to a StringIO
 
             self.check(expected, args, sep=sep, end=end)
 
             # When writing to a file, stdout is expected to be empty
-            o = io.StringIO()
+            o = StringIO()
             self.check('', args, sep=sep, end=end, file=o)
 
             # And o will contain the expected output
@@ -87,13 +93,27 @@
         x('a\n', ('a',))
         x('None\n', (None,))
         x('1 2\n', (1, 2))
+        x('1   2\n', (1, ' ', 2))
         x('1*2\n', (1, 2), sep='*')
         x('1 s', (1, 's'), end='')
         x('a\nb\n', ('a', 'b'), sep='\n')
         x('1.01', (1.0, 1), sep='', end='')
         x('1*a*1.3+', (1, 'a', 1.3), sep='*', end='+')
+        x('a\n\nb\n', ('a\n', 'b'), sep='\n')
+        x('\0+ +\0\n', ('\0', ' ', '\0'), sep='+')
+
+        x('a\n b\n', ('a\n', 'b'))
+        x('a\n b\n', ('a\n', 'b'), sep=None)
+        x('a\n b\n', ('a\n', 'b'), end=None)
+        x('a\n b\n', ('a\n', 'b'), sep=None, end=None)
 
         x('*\n', (ClassWith__str__('*'),))
+        x('abc 1\n', (ClassWith__str__('abc'), 1))
+
+        # errors
+        self.assertRaises(TypeError, print, '', sep=3)
+        self.assertRaises(TypeError, print, '', end=3)
+        self.assertRaises(AttributeError, print, '', file='')
 
 def test_main():
     test_support.run_unittest(TestPrint)

Modified: python/branches/py3k/Misc/ACKS
==============================================================================
--- python/branches/py3k/Misc/ACKS	(original)
+++ python/branches/py3k/Misc/ACKS	Wed Mar 19 00:48:28 2008
@@ -625,6 +625,7 @@
 J. Sipprell
 Kragen Sitaker
 Christopher Smith
+Eric V. Smith
 Gregory P. Smith
 Rafal Smotrzyk
 Dirk Soede


More information about the Python-3000-checkins mailing list