MCPcopy Index your code
hub / github.com/python/cpython / test_ios_ver

Method test_ios_ver

Lib/test/test_platform.py:485–533  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

483 support.wait_process(pid, exitcode=0)
484
485 def test_ios_ver(self):
486 result = platform.ios_ver()
487
488 # ios_ver is only fully available on iOS where ctypes is available.
489 if sys.platform == "ios" and _ctypes:
490 system, release, model, is_simulator = result
491 # Result is a namedtuple
492 self.assertEqual(result.system, system)
493 self.assertEqual(result.release, release)
494 self.assertEqual(result.model, model)
495 self.assertEqual(result.is_simulator, is_simulator)
496
497 # We can't assert specific values without reproducing the logic of
498 # ios_ver(), so we check that the values are broadly what we expect.
499
500 # System is either iOS or iPadOS, depending on the test device
501 self.assertIn(system, {"iOS", "iPadOS"})
502
503 # Release is a numeric version specifier with at least 2 parts
504 parts = release.split(".")
505 self.assertGreaterEqual(len(parts), 2)
506 self.assertTrue(all(part.isdigit() for part in parts))
507
508 # If this is a simulator, we get a high level device descriptor
509 # with no identifying model number. If this is a physical device,
510 # we get a model descriptor like "iPhone13,1"
511 if is_simulator:
512 self.assertIn(model, {"iPhone", "iPad"})
513 else:
514 self.assertTrue(
515 (model.startswith("iPhone") or model.startswith("iPad"))
516 and "," in model
517 )
518
519 self.assertEqual(type(is_simulator), bool)
520 else:
521 # On non-iOS platforms, calling ios_ver doesn't fail; you get
522 # default values
523 self.assertEqual(result.system, "")
524 self.assertEqual(result.release, "")
525 self.assertEqual(result.model, "")
526 self.assertFalse(result.is_simulator)
527
528 # Check the fallback values can be overridden by arguments
529 override = platform.ios_ver("Foo", "Bar", "Whiz", True)
530 self.assertEqual(override.system, "Foo")
531 self.assertEqual(override.release, "Bar")
532 self.assertEqual(override.model, "Whiz")
533 self.assertTrue(override.is_simulator)
534
535 def test_libc_ver(self):
536 if support.is_emscripten:

Callers

nothing calls this directly

Calls 8

assertInMethod · 0.80
assertGreaterEqualMethod · 0.80
assertTrueMethod · 0.80
isdigitMethod · 0.80
assertFalseMethod · 0.80
assertEqualMethod · 0.45
splitMethod · 0.45
startswithMethod · 0.45

Tested by

no test coverage detected