gh-97966: Restore prior expectation that uname_result._fields and ._asdict would include the processor. (gh-98343)

(cherry picked from commit dc063a25d2)

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
This commit is contained in:
Miss Islington (bot) 2022-11-26 05:53:00 -08:00 committed by GitHub
parent 3e3980b49e
commit 45ffab40e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 2 deletions

View file

@ -785,6 +785,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())
@ -798,7 +800,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)}'
@ -812,7 +814,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

View file

@ -269,6 +269,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")
@support.requires_subprocess()
def test_uname_processor(self):

View file

@ -0,0 +1,2 @@
On ``uname_result``, restored expectation that ``_fields`` and ``_asdict``
would include all six properties including ``processor``.