summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2022-11-26 13:52:12 (GMT)
committerGitHub <noreply@github.com>2022-11-26 13:52:12 (GMT)
commit289411d8eff6a646a7746cfb87ddf95ff83cfbdc (patch)
treee5c6cd38154d39f804b7510d8e79d5de5083a3de /Lib
parent610b7798af40e1457b884c91997219cf75637a04 (diff)
downloadcpython-289411d8eff6a646a7746cfb87ddf95ff83cfbdc.zip
cpython-289411d8eff6a646a7746cfb87ddf95ff83cfbdc.tar.gz
cpython-289411d8eff6a646a7746cfb87ddf95ff83cfbdc.tar.bz2
gh-97966: Restore prior expectation that uname_result._fields and ._asdict would include the processor. (gh-98343)
(cherry picked from commit dc063a25d29840d863b15c86fdab15b4a1894c73) Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
Diffstat (limited to 'Lib')
-rwxr-xr-xLib/platform.py6
-rw-r--r--Lib/test/test_platform.py8
2 files changed, 12 insertions, 2 deletions
diff --git a/Lib/platform.py b/Lib/platform.py
index e32f9c1..6a820c9 100755
--- a/Lib/platform.py
+++ b/Lib/platform.py
@@ -776,6 +776,8 @@ class uname_result(
except when needed.
"""
+ _fields = ('system', 'node', 'release', 'version', 'machine', 'processor')
+
@functools.cached_property
def processor(self):
return _unknown_as_blank(_Processor.get())
@@ -789,7 +791,7 @@ class uname_result(
@classmethod
def _make(cls, iterable):
# override factory to affect length check
- num_fields = len(cls._fields)
+ num_fields = len(cls._fields) - 1
result = cls.__new__(cls, *iterable)
if len(result) != num_fields + 1:
msg = f'Expected {num_fields} arguments, got {len(result)}'
@@ -803,7 +805,7 @@ class uname_result(
return len(tuple(iter(self)))
def __reduce__(self):
- return uname_result, tuple(self)[:len(self._fields)]
+ return uname_result, tuple(self)[:len(self._fields) - 1]
_uname_cache = None
diff --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py
index 1a68877..2d41166 100644
--- a/Lib/test/test_platform.py
+++ b/Lib/test/test_platform.py
@@ -268,6 +268,14 @@ class PlatformTest(unittest.TestCase):
self.assertEqual(res[:], expected)
self.assertEqual(res[:5], expected[:5])
+ def test_uname_fields(self):
+ self.assertIn('processor', platform.uname()._fields)
+
+ def test_uname_asdict(self):
+ res = platform.uname()._asdict()
+ self.assertEqual(len(res), 6)
+ self.assertIn('processor', res)
+
@unittest.skipIf(sys.platform in ['win32', 'OpenVMS'], "uname -p not used")
def test_uname_processor(self):
"""