changeset 106455:8132bcc1522d

Issue #28164: Improves test on Windows 7 [#28164]
author Steve Dower <steve.dower@microsoft.com>
date Mon, 06 Feb 2017 14:53:21 -0800
parents 98c17a44f7c1 (current diff) 4463e311f5bd (diff)
children e376d2bfde9b
files
diffstat 1 files changed, 22 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/Lib/test/test_winconsoleio.py
+++ b/Lib/test/test_winconsoleio.py
@@ -6,6 +6,7 @@ import os
 import sys
 import tempfile
 import unittest
+from test import support
 
 if sys.platform != 'win32':
     raise unittest.SkipTest("test only relevant on win32")
@@ -97,23 +98,28 @@ class WindowsConsoleIOTests(unittest.Tes
         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()
+    @unittest.skipIf(sys.getwindowsversion()[:2] <= (6, 1),
+        "test does not work on Windows 7 and earlier")
+    def test_conin_conout_names(self):
+        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()
 
-        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 test_conout_path(self):
+        temp_path = tempfile.mkdtemp()
+        self.addCleanup(support.rmtree, temp_path)
+
+        conout_path = os.path.join(temp_path, 'CONOUT$')
+
+        with open(conout_path, 'wb', buffering=0) as f:
+            if sys.getwindowsversion()[:2] > (6, 1):
+                self.assertIsInstance(f, ConIO)
+            else:
+                self.assertNotIsInstance(f, ConIO)
 
     def assertStdinRoundTrip(self, text):
         stdin = open('CONIN$', 'r')