| #!/usr/bin/python |
| |
| import time |
| import unittest |
| |
| import ios |
| |
| # Basic unit tests for the ios package. This is intended to be run |
| # locally (not as part of continuous integration) with the |
| # libimobiledevice tools installed and an iPad attached. |
| |
| class IOSDeviceCase(unittest.TestCase): |
| def test_get_state(self): |
| state = self._get_device().get_state() |
| self.assert_(state["ProductType"].lower().find("ipad") != -1) |
| |
| def test_reboot(self): |
| dev = self._get_device() |
| dev.reboot() |
| time.sleep(5) |
| while True: |
| dev = ios.ios_get_device_ids() |
| if len(dev) == 1: |
| break |
| time.sleep(2) |
| # Wait an additional 30 seconds to make sure |
| # the device is fully rebooted. |
| time.sleep(30) |
| |
| def test_get_kv_pairs(self): |
| sig = ('GD1suZo7maW9nMiDMb+wGAHbug59mPHeMJn/e1BWfjjCDnATA9jWCFg5goyl961sxw' |
| 'hQQttJ8Qj6OuXATQwurfPjQH/zqscAiRzDsk/UQ22/2gtUgVfUGuILtyLeIBvs1u4o' |
| 'F0HJFxb3keV2dqYhK6ATSufLrzZe97k/WSBZPuA=') |
| val = '''ImageSignature[1]: |
| 0: %s''' % sig |
| out = ios._get_kv_pairs(val) |
| self.assertEqual(1, len(out)) |
| self.assert_(isinstance(out["ImageSignature"], list)) |
| self.assertEqual(1, len(out["ImageSignature"])) |
| |
| val = """ActivationState: Activated |
| ActivationStateAcknowledged: true |
| NonVolatileRAM: |
| auto-boot: dHJ1ZQ== |
| backlight-level: MTYwMQ== |
| boot-args: |
| SupportedDeviceFamilies[2]: |
| 0: 1 |
| 1: 2 |
| TelephonyCapability: false""" |
| out = ios._get_kv_pairs(val) |
| self.assertEqual(5, len(out)) |
| self.assertEqual(out['NonVolatileRAM'], { |
| 'auto-boot': 'dHJ1ZQ==', |
| 'backlight-level': 'MTYwMQ==', |
| 'boot-args': '', |
| }) |
| self.assertEqual(out['SupportedDeviceFamilies'], ['1','2']) |
| |
| def _get_device(self): |
| device = ios.ios_get_devices() |
| self.assertEqual(1, len(device)) |
| device[0].get_ready() |
| return device[0] |
| |
| def main(): |
| unittest.main() |
| |
| if __name__ == '__main__': |
| main() |