def setUpClass(cls):
        """
        Only create device records once per TestCase
        """
        super(AppManagerTest, cls).setUpClass()

        ipad7_5 = {'UDID': 'aabbccddeeff0011223344556677889900000001',
                   'ECID': '0x00000000000001', 'deviceType': 'iPad7,5'}
        ipad7_3 = {'UDID': 'aabbccddeeff0011223344556677889900000002',
                   'ECID': '0x00000000000002', 'deviceType': 'iPad7,3'}
        ipad8_1 = {'UDID': 'aabbccddeeff0011223344556677889900000003',
                   'ECID': '0x00000000000003', 'deviceType': 'iPad8,1'}
        ipadf_n = {'UDID': 'aabbccddeeff0011223344556677889900000004',
                   'ECID':'0x00000000000004', 'deviceType': 'iPad99,9'}

        cls.ipad = device.Device(ipad7_5['ECID'], ipad7_5, 
                                  path=cls.resources.devices)
        cls.ipadpro = device.Device(ipad7_3['ECID'], ipad7_3, 
                                     path=cls.resources.devices)
        cls.ipadpro2 = device.Device(ipad8_1['ECID'], ipad8_1, 
                                      path=cls.resources.devices)
        cls.newipad = device.Device(ipadf_n['ECID'], ipadf_n, 
                                     path=cls.resources.devices)
        
        cls.manager = apps.AppManager()
Ejemplo n.º 2
0
 def setUp(self):
     self.dir = os.path.join(TMPDIR, 'threaded')
     self.data = {
         'locationID': '0x00000001',
         'UDID': 'a0111222333444555666777888999abcdefabcde',
         'ECID': '0x123456789ABCD0',
         "deviceType": "iPad7,5"
     }
     self.ecid = self.data['ECID']
     self.device = device.Device(self.ecid, info=self.data, path=self.dir)
     self.device2 = device.Device(self.ecid, path=self.dir)
     self.device3 = device.Device(self.ecid, path=self.dir)
Ejemplo n.º 3
0
 def test_minimal_init_succeeds(self):
     data = {
         'UDID': self.udid,
         'ECID': self.ecid,
         'deviceType': self.devicetype
     }
     d = device.Device(self.ecid, info=data, path=self.dir)
Ejemplo n.º 4
0
 def test_device_record_created(self):
     data = {
         'UDID': self.udid,
         'ECID': self.ecid,
         'deviceType': self.devicetype
     }
     d = device.Device(self.ecid, info=data, path=self.dir)
     self.assertTrue(os.path.exists(d.file))
Ejemplo n.º 5
0
 def test_device_record_has_keys(self):
     data = {
         'UDID': self.udid,
         'ECID': self.ecid,
         'deviceType': self.devicetype
     }
     d = device.Device(self.ecid, info=data, path=self.dir)
     for key, value in plistlib.readPlist(d.file).items():
         expected = self.data.get(key)
         self.assertEquals(expected, value)
Ejemplo n.º 6
0
 def setUp(self):
     cls = self.__class__
     self.dir = os.path.join(TMPDIR, 'locking')
     self.data = {
         'ECID': '0x123456789ABCD0',
         'UDID': 'a0111222333444555666777888999abcdefabcde',
         'deviceType': 'iPad7,5'
     }
     self.ecid = self.data['ECID']
     self.device = device.Device(self.ecid, info=self.data, path=self.dir)
     self.lock = config.FileLock(self.device.config.lockfile, timeout=1)
Ejemplo n.º 7
0
    def test_existing_record_updated2(self):
        new = {
            'deviceName': 'iPad',
            'firmwareVersion': '12.0',
            'locationID': '0x14100001',
            'buildVersion': '15E303'
        }
        d = device.Device(self.ecid, info=new, path=self.dir)

        result = plistlib.readPlist(d.file)
        for k in new.keys():
            self.assertNotEqual(result[k], self.orig[k])
Ejemplo n.º 8
0
    def test_existing_record_updated(self):
        new = {
            'deviceName': 'iPad',
            'firmwareVersion': '12.0',
            'locationID': '0x14100001',
            'buildVersion': '15E303'
        }
        d = device.Device(self.ecid, info=new, path=self.dir)

        result = plistlib.readPlist(d.file)
        for key, value in result.items():
            old = self.orig.get(key)
            expected = new.get(key, old)
            self.assertEquals(expected, value)
Ejemplo n.º 9
0
 def setUp(self):
     self.dir = os.path.join(TMPDIR, 'checkin')
     self.data = {
         'ECID': '0x123456789ABCD0',
         'UDID': 'a0111222333444555666777888999abcdefabcde',
         'bootedState': 'Booted',
         'buildVersion': '15E302',
         'deviceName': 'checkout-ipad-1',
         'deviceType': 'iPad7,5',
         'firmwareVersion': '11.3.1',
         'locationID': '0x00000001'
     }
     self.ecid = '0x123456789ABCD0'
     self.device = device.Device(self.ecid, info=self.data, path=self.dir)
     self.__class__.file = self.file = self.device.file
Ejemplo n.º 10
0
 def setUp(self):
     self.dir = os.path.join(TMPDIR, 'existing')
     self.orig = {
         'ECID': '0x1D481C2E300026',
         'UDID': 'fbe61f791f298c66ebb00a282f5b070c6cb9dc47',
         'bootedState': 'Booted',
         'buildVersion': '15E302',
         'deviceName': 'test-student-checkout-ipad-2',
         'deviceType': 'iPad7,5',
         'firmwareVersion': '11.3.1',
         'locationID': '0x14100000'
     }
     self.ecid = self.orig.get('ECID')
     self.device = device.Device(self.ecid, info=self.orig, path=self.dir)
     self.__class__.file = self.file = self.device.file
Ejemplo n.º 11
0
 def setUp(self):
     self.dir = os.path.join(TMPDIR, 'state')
     now = datetime.now()
     self.orig = {
         'ECID': '0x123456789ABCD0',
         'UDID': 'a0111222333444555666777888999abcdefabcde',
         'bootedState': 'Booted',
         'buildVersion': '15E302',
         'apps': ['app1', 'app2', 'app3'],
         'background': 'background.png',
         'erased': now - timedelta(seconds=3),
         'enrolled': now - timedelta(seconds=2),
         'checkout': now - timedelta(seconds=1),
         'checkin': now,
         'deviceName': 'checkout-ipad-1',
         'name': 'checkout-ipad-1',
         'deviceType': 'iPad7,5',
         'firmwareVersion': '11.3.1',
         'locationID': '0x00000001'
     }
     self.ecid = self.orig.get('ECID')
     self.device = device.Device(self.ecid, info=self.orig, path=self.dir)
     self.__class__.file = self.file = self.device.file
Ejemplo n.º 12
0
    def setUp(self):
        self.dir = os.path.join(TMPDIR, 'list')
        self.data = [{
            'ECID': '0x123456789ABCD0',
            'UDID': 'a0111222333444555666777888999abcdefabcde',
            'bootedState': 'Booted',
            'buildVersion': '15G77',
            'deviceName': 'test-ipad-1',
            'deviceType': 'iPad7,5',
            'firmwareVersion': '11.4.1',
            'locationID': '0x00000001'
        }, {
            'ECID': '0x123456789ABCD1',
            'UDID': 'a1111222333444555666777888999abcdefabcde',
            'bootedState': 'Booted',
            'buildVersion': '15G77',
            'deviceName': 'test-ipad-2',
            'deviceType': 'iPad7,5',
            'firmwareVersion': '11.4.1',
            'locationID': '0x00000002'
        }, {
            'ECID': '0x123456789ABCD2',
            'UDID': 'a2111222333444555666777888999abcdefabcde',
            'bootedState': 'Booted',
            'buildVersion': '15G77',
            'deviceName': 'test-ipad-3',
            'deviceType': 'iPad7,5',
            'firmwareVersion': '11.4.1',
            'locationID': '0x00000003'
        }]
        self.devices = []
        for info in self.data:
            d = device.Device(info['ECID'], info, path=self.dir)
            self.devices.append(d)

        self.devicelist = device.DeviceList(self.devices)
Ejemplo n.º 13
0
 def test_minimal_init_fails_missing_deviceType(self):
     data = {'ECID': self.ecid}
     with self.assertRaises(device.DeviceError):
         d = device.Device(self.ecid, info=data, path=self.dir)
Ejemplo n.º 14
0
 def test_init_fails_missing_info(self):
     with self.assertRaises(device.DeviceError):
         d = device.Device(self.ecid, path=self.dir)
Ejemplo n.º 15
0
 def test_contains_identical(self):
     data = self.data[0]
     identical = device.Device(data['ECID'], data, path=self.dir)
     self.assertIsNot(identical, self.devices[0])
     self.assertTrue(identical in self.devicelist)
Ejemplo n.º 16
0
 def test_alternative_minimal_init_fails_missing_ecid(self):
     data = {'UDID': self.udid, 'deviceType': self.devicetype}
     with self.assertRaises(device.DeviceError):
         device.Device(None, info=data, path=self.dir)
Ejemplo n.º 17
0
 def test_device_record_has_all_keys(self):
     d = device.Device(self.ecid, info=self.data, path=self.dir)
     result = plistlib.readPlist(d.file)
     self.assertEquals(result, self.data)
Ejemplo n.º 18
0
 def test_device_locked(self):
     with self.lock.acquire():
         with self.assertRaises(device.DeviceError):
             d = device.Device(self.ecid, path=self.dir, timeout=0)
Ejemplo n.º 19
0
 def test_device_record_no_extra_keys(self):
     d = device.Device(self.ecid, info=self.data, path=self.dir)
     result = plistlib.readPlist(d.file)
     for k in result.keys():
         self.assertIsNotNone(self.data.get(k))
Ejemplo n.º 20
0
 def test_existing_record_initialized(self):
     device.Device(self.ecid, path=self.dir)
Ejemplo n.º 21
0
 def test_existing_record_no_info(self):
     d = device.Device(self.ecid, path=self.dir)
     for key, value in plistlib.readPlist(d.file).items():
         self.assertEquals(self.orig[key], value)
Ejemplo n.º 22
0
 def test_new_device_name_does_not_affect_name(self):
     name = self.device.name
     _info = {'deviceName': 'iPad'}
     d = device.Device(self.ecid, info=_info, path=self.dir)
     result = self.device.record
     self.assertNotEqual(result['name'], result['deviceName'])
Ejemplo n.º 23
0
 def test_verify_mismatching_ECID(self):
     mismatch = {'ECID': 'mismatch'}
     with self.assertRaises(device.DeviceError):
         device.Device(self.ecid, info=mismatch, path=self.dir)