def test_only_update_once_per_day(self): user = CommCareUser() when = datetime(2000, 1, 1) later = when + timedelta(hours=1) day_later = when + timedelta(days=1) device = 'device' self.assertTrue(user.update_device_id_last_used(device, when)) self.assertFalse(user.update_device_id_last_used(device, later)) self.assertTrue(user.update_device_id_last_used(device, day_later))
def test_add_single_device(self): user = CommCareUser() now = datetime.utcnow() device_id = 'my-new-cool-phone' self.assertEqual([], user.devices) user.update_device_id_last_used(device_id, now) self.assertEqual(1, len(user.devices)) device = user.devices[0] self.assertEqual(device_id, device.device_id) self.assertEqual(now, device.last_used)
def test_update_app_metadata(self): user = CommCareUser() app_meta = DeviceAppMeta(app_id='123', build_id='build1', build_version=1, last_submission=datetime.utcnow(), num_unsent_forms=1) user.update_device_id_last_used('device', device_app_meta=app_meta) device = user.get_device('device') app_meta = device.get_meta_for_app('123') self.assertIsNotNone(app_meta)
def test_add_second_device(self): user = CommCareUser() now = datetime.utcnow() later = now + timedelta(seconds=1) first_device = 'first-device' second_device = 'second-device' user.update_device_id_last_used(first_device, now) user.update_device_id_last_used(second_device, later) self.assertEqual(2, len(user.devices)) device_date_mapping = {device.device_id: device.last_used for device in user.devices} self.assertEqual(set([first_device, second_device]), set(device_date_mapping.keys())) self.assertEqual(now, device_date_mapping[first_device]) self.assertEqual(later, device_date_mapping[second_device])
def test_add_second_device(self): user = CommCareUser() now = datetime.utcnow() later = now + timedelta(seconds=1) first_device = 'first-device' second_device = 'second-device' user.update_device_id_last_used(first_device, now) user.update_device_id_last_used(second_device, later) self.assertEqual(2, len(user.devices)) device_date_mapping = {device.device_id: device.last_used for device in user.devices} self.assertEqual({first_device, second_device}, set(device_date_mapping.keys())) self.assertEqual(now, device_date_mapping[first_device]) self.assertEqual(later, device_date_mapping[second_device])
def test_update_app_metadata(self): user = CommCareUser() app_meta = DeviceAppMeta( app_id='123', build_id='build1', build_version=1, last_submission=datetime.utcnow(), num_unsent_forms=1 ) user.update_device_id_last_used('device', device_app_meta=app_meta) device = user.get_device('device') app_meta = device.get_meta_for_app('123') self.assertIsNotNone(app_meta)
def test_update_existing_devices(self): user = CommCareUser() now = datetime.utcnow() later = now + timedelta(days=1, seconds=1) way_later = now + timedelta(days=1, seconds=2) first_device = 'first-device' second_device = 'second-device' user.update_device_id_last_used(first_device, now) user.update_device_id_last_used(second_device, now) user.update_device_id_last_used(first_device, later) user.update_device_id_last_used(second_device, way_later) self.assertEqual(2, len(user.devices)) device_date_mapping = {device.device_id: device.last_used for device in user.devices} self.assertEqual({first_device, second_device}, set(device_date_mapping.keys())) self.assertEqual(later, device_date_mapping[first_device]) self.assertEqual(way_later, device_date_mapping[second_device])