From 1fe806ac56f8b83694d24ab604eb695d00bc8497 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Mon, 6 Feb 2017 14:50:17 -0800 Subject: Issue #28164: Improves test on Windows 7 --- Lib/test/test_winconsoleio.py | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/Lib/test/test_winconsoleio.py b/Lib/test/test_winconsoleio.py index 0d88ae3e7d..656483cf16 100644 --- 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.TestCase): 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() - 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() + f = open('//?/conout$', 'wb', buffering=0) + 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') -- cgit v1.2.1