@@ -219,6 +219,19 @@ def test_uname(self):
219219 self .assertEqual (res [- 1 ], res .processor )
220220 self .assertEqual (len (res ), 6 )
221221
222+ if os .name == "posix" :
223+ uname = os .uname ()
224+ self .assertEqual (res .node , uname .nodename )
225+ self .assertEqual (res .version , uname .version )
226+ self .assertEqual (res .machine , uname .machine )
227+
228+ if sys .platform == "android" :
229+ self .assertEqual (res .system , "Android" )
230+ self .assertEqual (res .release , platform .android_ver ().release )
231+ else :
232+ self .assertEqual (res .system , uname .sysname )
233+ self .assertEqual (res .release , uname .release )
234+
222235 @unittest .skipUnless (sys .platform .startswith ('win' ), "windows only test" )
223236 def test_uname_win32_without_wmi (self ):
224237 def raises_oserror (* a ):
@@ -458,6 +471,43 @@ def test_libc_ver(self):
458471 self .assertEqual (platform .libc_ver (filename , chunksize = chunksize ),
459472 ('glibc' , '1.23.4' ))
460473
474+ def test_android_ver (self ):
475+ res = platform .android_ver ()
476+ self .assertIsInstance (res , tuple )
477+ self .assertEqual (res , (res .release , res .api_level , res .manufacturer ,
478+ res .model , res .device , res .is_emulator ))
479+
480+ if sys .platform == "android" :
481+ for name in ["release" , "manufacturer" , "model" , "device" ]:
482+ with self .subTest (name ):
483+ value = getattr (res , name )
484+ self .assertIsInstance (value , str )
485+ self .assertNotEqual (value , "" )
486+
487+ self .assertIsInstance (res .api_level , int )
488+ self .assertGreaterEqual (res .api_level , sys .getandroidapilevel ())
489+
490+ self .assertIsInstance (res .is_emulator , bool )
491+
492+ # When not running on Android, it should return the default values.
493+ else :
494+ self .assertEqual (res .release , "" )
495+ self .assertEqual (res .api_level , 0 )
496+ self .assertEqual (res .manufacturer , "" )
497+ self .assertEqual (res .model , "" )
498+ self .assertEqual (res .device , "" )
499+ self .assertEqual (res .is_emulator , False )
500+
501+ # Default values may also be overridden using parameters.
502+ res = platform .android_ver (
503+ "alpha" , 1 , "bravo" , "charlie" , "delta" , True )
504+ self .assertEqual (res .release , "alpha" )
505+ self .assertEqual (res .api_level , 1 )
506+ self .assertEqual (res .manufacturer , "bravo" )
507+ self .assertEqual (res .model , "charlie" )
508+ self .assertEqual (res .device , "delta" )
509+ self .assertEqual (res .is_emulator , True )
510+
461511 @support .cpython_only
462512 def test__comparable_version (self ):
463513 from platform import _comparable_version as V
0 commit comments