mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
gh-71042: Add platform.android_ver
(#116674)
This commit is contained in:
parent
ce00de4c8c
commit
74c8568d07
9 changed files with 164 additions and 16 deletions
|
@ -219,6 +219,19 @@ class PlatformTest(unittest.TestCase):
|
|||
self.assertEqual(res[-1], res.processor)
|
||||
self.assertEqual(len(res), 6)
|
||||
|
||||
if os.name == "posix":
|
||||
uname = os.uname()
|
||||
self.assertEqual(res.node, uname.nodename)
|
||||
self.assertEqual(res.version, uname.version)
|
||||
self.assertEqual(res.machine, uname.machine)
|
||||
|
||||
if sys.platform == "android":
|
||||
self.assertEqual(res.system, "Android")
|
||||
self.assertEqual(res.release, platform.android_ver().release)
|
||||
else:
|
||||
self.assertEqual(res.system, uname.sysname)
|
||||
self.assertEqual(res.release, uname.release)
|
||||
|
||||
@unittest.skipUnless(sys.platform.startswith('win'), "windows only test")
|
||||
def test_uname_win32_without_wmi(self):
|
||||
def raises_oserror(*a):
|
||||
|
@ -458,6 +471,43 @@ class PlatformTest(unittest.TestCase):
|
|||
self.assertEqual(platform.libc_ver(filename, chunksize=chunksize),
|
||||
('glibc', '1.23.4'))
|
||||
|
||||
def test_android_ver(self):
|
||||
res = platform.android_ver()
|
||||
self.assertIsInstance(res, tuple)
|
||||
self.assertEqual(res, (res.release, res.api_level, res.manufacturer,
|
||||
res.model, res.device, res.is_emulator))
|
||||
|
||||
if sys.platform == "android":
|
||||
for name in ["release", "manufacturer", "model", "device"]:
|
||||
with self.subTest(name):
|
||||
value = getattr(res, name)
|
||||
self.assertIsInstance(value, str)
|
||||
self.assertNotEqual(value, "")
|
||||
|
||||
self.assertIsInstance(res.api_level, int)
|
||||
self.assertGreaterEqual(res.api_level, sys.getandroidapilevel())
|
||||
|
||||
self.assertIsInstance(res.is_emulator, bool)
|
||||
|
||||
# When not running on Android, it should return the default values.
|
||||
else:
|
||||
self.assertEqual(res.release, "")
|
||||
self.assertEqual(res.api_level, 0)
|
||||
self.assertEqual(res.manufacturer, "")
|
||||
self.assertEqual(res.model, "")
|
||||
self.assertEqual(res.device, "")
|
||||
self.assertEqual(res.is_emulator, False)
|
||||
|
||||
# Default values may also be overridden using parameters.
|
||||
res = platform.android_ver(
|
||||
"alpha", 1, "bravo", "charlie", "delta", True)
|
||||
self.assertEqual(res.release, "alpha")
|
||||
self.assertEqual(res.api_level, 1)
|
||||
self.assertEqual(res.manufacturer, "bravo")
|
||||
self.assertEqual(res.model, "charlie")
|
||||
self.assertEqual(res.device, "delta")
|
||||
self.assertEqual(res.is_emulator, True)
|
||||
|
||||
@support.cpython_only
|
||||
def test__comparable_version(self):
|
||||
from platform import _comparable_version as V
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue