diff options
author | Victor Stinner <vstinner@redhat.com> | 2018-12-07 10:10:33 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-07 10:10:33 (GMT) |
commit | 3a521f0b6167628f975c773b56c7daf8d33d6f40 (patch) | |
tree | 91f83d86bd25493d1285fbca6fccc2280c5ebfc0 /Lib/test/test_platform.py | |
parent | 9ebe8794f003dadfff578a066ea503a3e37ffe1d (diff) | |
download | cpython-3a521f0b6167628f975c773b56c7daf8d33d6f40.zip cpython-3a521f0b6167628f975c773b56c7daf8d33d6f40.tar.gz cpython-3a521f0b6167628f975c773b56c7daf8d33d6f40.tar.bz2 |
bpo-35346, platform: replace os.popen() with subprocess (GH-10786)
Replace os.popen() with subprocess.check_output() in the platform module:
* platform.uname() (its _syscmd_ver() helper function) now redirects
stderr to DEVNULL.
* Remove platform.DEV_NULL.
* _syscmd_uname() and _syscmd_file() no longer catch AttributeError.
The "except AttributeError:" was only needed in Python 2, when
os.popen() was not always available. In Python 3,
subprocess.check_output() is always available.
Diffstat (limited to 'Lib/test/test_platform.py')
-rw-r--r-- | Lib/test/test_platform.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py index c1a7e34..9cf1772 100644 --- a/Lib/test/test_platform.py +++ b/Lib/test/test_platform.py @@ -222,16 +222,16 @@ class PlatformTest(unittest.TestCase): res = platform.mac_ver() if platform.uname().system == 'Darwin': - # We're on a MacOSX system, check that - # the right version information is returned - fd = os.popen('sw_vers', 'r') - real_ver = None - for ln in fd: - if ln.startswith('ProductVersion:'): - real_ver = ln.strip().split()[-1] + # We are on a macOS system, check that the right version + # information is returned + output = subprocess.check_output(['sw_vers'], text=True) + for line in output.splitlines(): + if line.startswith('ProductVersion:'): + real_ver = line.strip().split()[-1] break - fd.close() - self.assertFalse(real_ver is None) + else: + self.fail(f"failed to parse sw_vers output: {output!r}") + result_list = res[0].split('.') expect_list = real_ver.split('.') len_diff = len(result_list) - len(expect_list) |