(self)
| 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: |
nothing calls this directly
no test coverage detected