Commit e310106e authored by Xavier de Gaye's avatar Xavier de Gaye

Issue #28662: Catch PermissionError in tests when spawning a non existent program

parent a414f57e
...@@ -79,7 +79,7 @@ class TraceBackend: ...@@ -79,7 +79,7 @@ class TraceBackend:
try: try:
output = self.trace(abspath("assert_usable" + self.EXTENSION)) output = self.trace(abspath("assert_usable" + self.EXTENSION))
output = output.strip() output = output.strip()
except FileNotFoundError as fnfe: except (FileNotFoundError, PermissionError) as fnfe:
output = str(fnfe) output = str(fnfe)
if output != "probe: success": if output != "probe: success":
raise unittest.SkipTest( raise unittest.SkipTest(
......
...@@ -1869,7 +1869,8 @@ class TermsizeTests(unittest.TestCase): ...@@ -1869,7 +1869,8 @@ class TermsizeTests(unittest.TestCase):
""" """
try: try:
size = subprocess.check_output(['stty', 'size']).decode().split() size = subprocess.check_output(['stty', 'size']).decode().split()
except (FileNotFoundError, subprocess.CalledProcessError): except (FileNotFoundError, PermissionError,
subprocess.CalledProcessError):
self.skipTest("stty invocation failed") self.skipTest("stty invocation failed")
expected = (int(size[1]), int(size[0])) # reversed order expected = (int(size[1]), int(size[0])) # reversed order
......
...@@ -293,7 +293,8 @@ class ProcessTestCase(BaseTestCase): ...@@ -293,7 +293,8 @@ class ProcessTestCase(BaseTestCase):
# Verify first that the call succeeds without the executable arg. # Verify first that the call succeeds without the executable arg.
pre_args = [sys.executable, "-c"] pre_args = [sys.executable, "-c"]
self._assert_python(pre_args) self._assert_python(pre_args)
self.assertRaises(FileNotFoundError, self._assert_python, pre_args, self.assertRaises((FileNotFoundError, PermissionError),
self._assert_python, pre_args,
executable="doesnotexist") executable="doesnotexist")
@unittest.skipIf(mswindows, "executable argument replaces shell") @unittest.skipIf(mswindows, "executable argument replaces shell")
...@@ -2753,7 +2754,7 @@ class ContextManagerTests(BaseTestCase): ...@@ -2753,7 +2754,7 @@ class ContextManagerTests(BaseTestCase):
self.assertEqual(proc.returncode, 1) self.assertEqual(proc.returncode, 1)
def test_invalid_args(self): def test_invalid_args(self):
with self.assertRaises(FileNotFoundError) as c: with self.assertRaises((FileNotFoundError, PermissionError)) as c:
with subprocess.Popen(['nonexisting_i_hope'], with subprocess.Popen(['nonexisting_i_hope'],
stdout=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE) as proc: stderr=subprocess.PIPE) as proc:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment