@@ -299,9 +299,7 @@ def test_uname(self):
299299 # All other platforms - sys.platform is the lower case
300300 # form of system (e.g., visionOS->visionos)
301301 self .assertEqual (res .system .lower (), sys .platform )
302- # Use the platform-specific version method
303- platform_ver = getattr (platform , f"{ sys .platform } _ver" )
304- self .assertEqual (res .release , platform_ver ().release )
302+ self .assertEqual (res .release , platform .ios_ver ().release )
305303 else :
306304 self .assertEqual (res .system , "" )
307305 self .assertEqual (res .release , "" )
@@ -493,8 +491,8 @@ def test_mac_ver_with_fork(self):
493491 def test_ios_ver (self ):
494492 result = platform .ios_ver ()
495493
496- # ios_ver is only fully available on iOS where ctypes is available.
497- if sys .platform == "ios" and _ctypes :
494+ # ios_ver is only fully available on Apple mobile platorms where ctypes is available.
495+ if sys .platform in { "ios" , "tvos" , "visionos" , "watchos" } and _ctypes :
498496 system , release , model , is_simulator = result
499497 # Result is a namedtuple
500498 self .assertEqual (result .system , system )
@@ -506,7 +504,10 @@ def test_ios_ver(self):
506504 # ios_ver(), so we check that the values are broadly what we expect.
507505
508506 # System is either iOS or iPadOS, depending on the test device
509- self .assertIn (system , {"iOS" , "iPadOS" })
507+ if sys .platform == "ios" :
508+ self .assertIn (system , {"iOS" , "iPadOS" })
509+ else :
510+ self .assertEqual (system .lower (), sys .platform )
510511
511512 # Release is a numeric version specifier with at least 2 parts
512513 parts = release .split ("." )
@@ -516,11 +517,17 @@ def test_ios_ver(self):
516517 # If this is a simulator, we get a high level device descriptor
517518 # with no identifying model number. If this is a physical device,
518519 # we get a model descriptor like "iPhone13,1"
520+ devices = {
521+ "ios" : {"iPhone" , "iPad" },
522+ "tvos" : {"Apple TV" },
523+ "visionos" : {"Apple Vision Pro" },
524+ "watchos" : {"Apple Watch" },
525+ }[sys .platform ]
519526 if is_simulator :
520- self .assertIn (model , { "iPhone" , "iPad" } )
527+ self .assertIn (model , devices )
521528 else :
522529 self .assertTrue (
523- (model .startswith ("iPhone" ) or model . startswith ( "iPad" ) )
530+ any (model .startswith (d ) for d in devices )
524531 and "," in model
525532 )
526533
0 commit comments