#17365: Remove Python 2 code from test_print
Patch by Berker Peksag
diff --git a/Lib/test/test_print.py b/Lib/test/test_print.py
index 9d6dbea..7eea349 100644
--- a/Lib/test/test_print.py
+++ b/Lib/test/test_print.py
@@ -1,62 +1,55 @@
-"""Test correct operation of the print function.
-"""
-
-# In 2.6, this gives us the behavior we want.  In 3.0, it has
-#  no function, but it still must parse correctly.
-from __future__ import print_function
-
 import unittest
-from test import support
+from io import StringIO
 
-try:
-    # 3.x
-    from io import StringIO
-except ImportError:
-    # 2.x
-    from StringIO import StringIO
+from test import support
 
 NotDefined = object()
 
 # A dispatch table all 8 combinations of providing
-#  sep, end, and file
+# sep, end, and file.
 # I use this machinery so that I'm not just passing default
-#  values to print, I'm either passing or not passing in the
-#  arguments
+# values to print, I'm either passing or not passing in the
+# arguments.
 dispatch = {
     (False, False, False):
-     lambda args, sep, end, file: print(*args),
+        lambda args, sep, end, file: print(*args),
     (False, False, True):
-     lambda args, sep, end, file: print(file=file, *args),
+        lambda args, sep, end, file: print(file=file, *args),
     (False, True,  False):
-     lambda args, sep, end, file: print(end=end, *args),
+        lambda args, sep, end, file: print(end=end, *args),
     (False, True,  True):
-     lambda args, sep, end, file: print(end=end, file=file, *args),
+        lambda args, sep, end, file: print(end=end, file=file, *args),
     (True,  False, False):
-     lambda args, sep, end, file: print(sep=sep, *args),
+        lambda args, sep, end, file: print(sep=sep, *args),
     (True,  False, True):
-     lambda args, sep, end, file: print(sep=sep, file=file, *args),
+        lambda args, sep, end, file: print(sep=sep, file=file, *args),
     (True,  True,  False):
-     lambda args, sep, end, file: print(sep=sep, end=end, *args),
+        lambda args, sep, end, file: print(sep=sep, end=end, *args),
     (True,  True,  True):
-     lambda args, sep, end, file: print(sep=sep, end=end, file=file, *args),
-    }
+        lambda args, sep, end, file: print(sep=sep, end=end, file=file, *args),
+}
+
 
 # Class used to test __str__ and print
 class ClassWith__str__:
     def __init__(self, x):
         self.x = x
+
     def __str__(self):
         return self.x
 
-class TestPrint(unittest.TestCase):
-    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
-        #  must match expected.
 
-        # Look up the actual function to call, based on if sep, end, and file
-        #  are defined
+class TestPrint(unittest.TestCase):
+    """Test correct operation of the print function."""
+
+    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
+        # must match expected.
+
+        # Look up the actual function to call, based on if sep, end,
+        # and file are defined.
         fn = dispatch[(sep is not NotDefined,
                        end is not NotDefined,
                        file is not NotDefined)]
@@ -69,7 +62,7 @@
     def test_print(self):
         def x(expected, args, sep=NotDefined, end=NotDefined):
             # Run the test 2 ways: not using file, and using
-            #  file directed to a StringIO
+            # file directed to a StringIO.
 
             self.check(expected, args, sep=sep, end=end)
 
@@ -101,11 +94,6 @@
         x('*\n', (ClassWith__str__('*'),))
         x('abc 1\n', (ClassWith__str__('abc'), 1))
 
-#        # 2.x unicode tests
-#        x(u'1 2\n', ('1', u'2'))
-#        x(u'u\1234\n', (u'u\1234',))
-#        x(u'  abc 1\n', (' ', ClassWith__str__(u'abc'), 1))
-
         # errors
         self.assertRaises(TypeError, print, '', sep=3)
         self.assertRaises(TypeError, print, '', end=3)
@@ -113,12 +101,14 @@
 
     def test_print_flush(self):
         # operation of the flush flag
-        class filelike():
+        class filelike:
             def __init__(self):
                 self.written = ''
                 self.flushed = 0
+
             def write(self, str):
                 self.written += str
+
             def flush(self):
                 self.flushed += 1
 
@@ -130,15 +120,13 @@
         self.assertEqual(f.flushed, 2)
 
         # ensure exceptions from flush are passed through
-        class noflush():
+        class noflush:
             def write(self, str):
                 pass
+
             def flush(self):
                 raise RuntimeError
         self.assertRaises(RuntimeError, print, 1, file=noflush(), flush=True)
 
-def test_main():
-    support.run_unittest(TestPrint)
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()