]> granicus.if.org Git - python/commitdiff
Updates test_winconsoleio to better show the source of its issues.
authorSteve Dower <steve.dower@microsoft.com>
Sun, 5 Feb 2017 00:46:34 +0000 (16:46 -0800)
committerSteve Dower <steve.dower@microsoft.com>
Sun, 5 Feb 2017 00:46:34 +0000 (16:46 -0800)
Lib/test/test_winconsoleio.py

index 06467e905a87bb6ad6cdaf5956379c175d36d184..0d88ae3e7d6bbeeb444b88de5bdae14851d173bf 100644 (file)
@@ -1,11 +1,11 @@
 '''Tests for WindowsConsoleIO
 '''
 
-import os
 import io
+import os
 import sys
-import unittest
 import tempfile
+import unittest
 
 if sys.platform != 'win32':
     raise unittest.SkipTest("test only relevant on win32")
@@ -26,8 +26,10 @@ class WindowsConsoleIOTests(unittest.TestCase):
 
         fd, _ = tempfile.mkstemp()
         try:
+            # Windows 10: "Cannot open non-console file"
+            # Earlier: "Cannot open console output buffer for reading"
             self.assertRaisesRegex(ValueError,
-                "Cannot open non-console file", ConIO, fd)
+                "Cannot open (console|non-console file)", ConIO, fd)
         finally:
             os.close(fd)
 
@@ -70,18 +72,6 @@ class WindowsConsoleIOTests(unittest.TestCase):
     def test_open_name(self):
         self.assertRaises(ValueError, ConIO, sys.executable)
 
-        f = open('C:/con', 'rb', buffering=0)
-        self.assertIsInstance(f, ConIO)
-        f.close()
-
-        f = open(r'\\.\conin$', 'rb', buffering=0)
-        self.assertIsInstance(f, ConIO)
-        f.close()
-
-        f = open('//?/conout$', 'wb', buffering=0)
-        self.assertIsInstance(f, ConIO)
-        f.close()
-
         f = ConIO("CON")
         self.assertTrue(f.readable())
         self.assertFalse(f.writable())
@@ -103,6 +93,28 @@ class WindowsConsoleIOTests(unittest.TestCase):
         f.close()
         f.close()
 
+        f = open('C:/con', 'rb', buffering=0)
+        self.assertIsInstance(f, ConIO)
+        f.close()
+
+        try:
+            f = open(r'\\.\conin$', 'rb', buffering=0)
+        except FileNotFoundError:
+            # If we cannot find the file, this part should be skipped
+            print('\\\\.\\conin$ was not found on this OS')
+        else:
+            self.assertIsInstance(f, ConIO)
+            f.close()
+
+        try:
+            f = open('//?/conout$', 'wb', buffering=0)
+        except FileNotFoundError:
+            # If we cannot find the file, this part should be skipped
+            print('//?/conout$ was not found on this OS')
+        else:
+            self.assertIsInstance(f, ConIO)
+            f.close()
+
     def assertStdinRoundTrip(self, text):
         stdin = open('CONIN$', 'r')
         old_stdin = sys.stdin