diff options
Diffstat (limited to 'Lib/test/test_subprocess.py')
-rw-r--r-- | Lib/test/test_subprocess.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index eee24bb..858a701 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -1475,6 +1475,37 @@ class RunFuncTestCase(BaseTestCase): env=newenv) self.assertEqual(cp.returncode, 33) + def test_run_with_pathlike_path(self): + # bpo-31961: test run(pathlike_object) + class Path: + def __fspath__(self): + # the name of a command that can be run without + # any argumenets that exit fast + return 'dir' if mswindows else 'ls' + + path = Path() + if mswindows: + res = subprocess.run(path, stdout=subprocess.DEVNULL, shell=True) + else: + res = subprocess.run(path, stdout=subprocess.DEVNULL) + + self.assertEqual(res.returncode, 0) + + def test_run_with_pathlike_path_and_arguments(self): + # bpo-31961: test run([pathlike_object, 'additional arguments']) + class Path: + def __fspath__(self): + # the name of a command that can be run without + # any argumenets that exits fast + return sys.executable + + path = Path() + + args = [path, '-c', 'import sys; sys.exit(57)'] + res = subprocess.run(args) + + self.assertEqual(res.returncode, 57) + def test_capture_output(self): cp = self.run_python(("import sys;" "sys.stdout.write('BDFL'); " |