bpo-35967: Baseline values for uname -p (GH-12824)

* Add a test intended to capture the expected values from 'uname -p'

* Instead of trying to keep track of all of the possible outputs on different systems (probably a fool's errand), simply assert that except for the known platform variance, uname().processor matches the output of 'uname -p'

* Use a skipIf directive

* Use contextlib.suppress to suppress the error. Inline strip call.
This commit is contained in:
Jason R. Coombs 2020-04-15 14:32:01 -04:00 committed by GitHub
parent 9a4b38f66b
commit 4b4e90a518
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 0 deletions

View File

@ -3,6 +3,8 @@
import subprocess
import sys
import unittest
import collections
import contextlib
from unittest import mock
from test import support
@ -160,6 +162,18 @@ def test_uname(self):
self.assertEqual(res[4], res.machine)
self.assertEqual(res[5], res.processor)
@unittest.skipIf(sys.platform in ['win32', 'OpenVMS'], "uname -p not used")
def test_uname_processor(self):
"""
On some systems, the processor must match the output
of 'uname -p'. See Issue 35967 for rationale.
"""
with contextlib.suppress(subprocess.CalledProcessError):
self.assertEqual(
platform.uname().processor,
subprocess.check_output(['uname', '-p'], text=True).strip(),
)
@unittest.skipUnless(sys.platform.startswith('win'), "windows only test")
def test_uname_win32_ARCHITEW6432(self):
# Issue 7860: make sure we get architecture from the correct variable