]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-35967: Baseline values for uname -p (GH-12824)
authorJason R. Coombs <jaraco@jaraco.com>
Wed, 15 Apr 2020 18:32:01 +0000 (14:32 -0400)
committerGitHub <noreply@github.com>
Wed, 15 Apr 2020 18:32:01 +0000 (14:32 -0400)
* 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.

Lib/test/test_platform.py

index f167fb1e7b9bf163559b0928915d0b48d4f3a98e..0e6cb6db1ee988cdfe01ea5ff66c433dc59eafbc 100644 (file)
@@ -3,6 +3,8 @@ import platform
 import subprocess
 import sys
 import unittest
+import collections
+import contextlib
 from unittest import mock
 
 from test import support
@@ -160,6 +162,18 @@ class PlatformTest(unittest.TestCase):
         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