From: Zachary Ware Date: Mon, 4 Nov 2013 04:51:25 +0000 (-0600) Subject: Issue #17883: Tweak test_tcl testLoadWithUNC to skip the test in the X-Git-Tag: v2.7.8~296 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=57d35c6494fadbbec2a87ba65e162f3256ee0a94;p=python Issue #17883: Tweak test_tcl testLoadWithUNC to skip the test in the event of a permission error on Windows and to properly report other skip conditions. --- diff --git a/Lib/test/test_tcl.py b/Lib/test/test_tcl.py index 50e1ac40ac..0ccede1a7e 100644 --- a/Lib/test/test_tcl.py +++ b/Lib/test/test_tcl.py @@ -138,18 +138,15 @@ class TclTest(unittest.TestCase): tcl = self.interp self.assertRaises(TclError,tcl.eval,'package require DNE') + @unittest.skipUnless(sys.platform == 'win32', "only applies to Windows") def testLoadWithUNC(self): - import sys - if sys.platform != 'win32': - return - # Build a UNC path from the regular path. # Something like # \\%COMPUTERNAME%\c$\python27\python.exe fullname = os.path.abspath(sys.executable) if fullname[1] != ':': - return + self.skipTest('unusable path: %r' % fullname) unc_name = r'\\%s\%s$\%s' % (os.environ['COMPUTERNAME'], fullname[0], fullname[3:]) @@ -158,7 +155,14 @@ class TclTest(unittest.TestCase): env.unset("TCL_LIBRARY") cmd = '%s -c "import Tkinter; print Tkinter"' % (unc_name,) - p = Popen(cmd, stdout=PIPE, stderr=PIPE) + try: + p = Popen(cmd, stdout=PIPE, stderr=PIPE) + except WindowsError as e: + if e.winerror == 5: + self.skipTest('Not permitted to start the child process') + else: + raise + out_data, err_data = p.communicate() msg = '\n\n'.join(['"Tkinter.py" not in output', diff --git a/Misc/NEWS b/Misc/NEWS index 22be7c46f2..9de6aafbb5 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -23,6 +23,10 @@ Library Tests ----- +- Issue #17883: Tweak test_tcl testLoadWithUNC to skip the test in the + event of a permission error on Windows and to properly report other + skip conditions. + - Issue #17883: Backported _is_gui_available() in test.test_support to avoid hanging Windows buildbots on test_ttk_guionly.