def test_can_switch_membership_of_an_inactive_profile( self, client, profile, mdm_group): profile = Profile(**profile) profile.status = ProfileStatus.INACTIVE mdm_group = MDMGroup(**mdm_group) cdatabase.db_session.add(profile) cdatabase.db_session.add(mdm_group) cdatabase.db_session.commit() res = client.put( url_for('api_app.mdmgroupresource_profile', id=mdm_group.id, profile_id=profile.id)) assert self.assert_json(res.headers) assert self.assert_success(res) data = json.loads(res.data) assert data['message'] == "Success" res = client.delete( url_for('api_app.mdmgroupresource_profile', id=mdm_group.id, profile_id=profile.id)) assert self.assert_json(res.headers) assert self.assert_success(res) data = json.loads(res.data) assert data['message'] == "Success"
def test_when_device_is_removed_from_group_profiles_are_removed(self, client, device, profile, mdm_group): device = Device(**device) profile = Profile(**profile) profile_service = mock.MagicMock() # FIXME: there has to be a better way... original_profile_service = capi.ProfileService capi.ProfileService = mock.MagicMock() capi.ProfileService.return_value = profile_service mdm_group = MDMGroup(**mdm_group) profile.status = ProfileStatus.ACTIVE mdm_group.devices.append(device) mdm_group.profiles.append(profile) cdatabase.db_session.add(device) cdatabase.db_session.add(profile) cdatabase.db_session.add(mdm_group) cdatabase.db_session.commit() try: capi.ProfileService = mock.MagicMock() capi.ProfileService.return_value = profile_service res = client.delete(url_for('api_app.mdmgroupresource_device', id=mdm_group.id, device_id=device.id)) finally: capi.ProfileService = original_profile_service assert self.assert_json(res.headers) assert self.assert_success(res) data = json.loads(res.data) assert data['message'] == "Success" profile_service.finalize_removal.assert_called_once_with(profile, device)
def test_delete(self, client, profile): profile_dict = profile for status in list(ProfileStatus): profile = Profile(**profile_dict) profile.status = status cdatabase.db_session.add(profile) cdatabase.db_session.commit() profile_id = profile.id res = client.delete(url_for('api_app.profileresource', id=profile_id)) res = client.get(url_for('api_app.profileresource', id=profile_id)) assert self.assert_json(res.headers) deleted = False if status == ProfileStatus.ACTIVE: assert self.assert_success(res) assert profile.status == ProfileStatus.PENDING_DELETION elif status == ProfileStatus.INACTIVE: assert res.status_code == 404 deleted = True else: assert profile.status == status if not deleted: cdatabase.db_session.delete(profile) cdatabase.db_session.commit()
def test_undeploy_works_only_if_active(self, client, profile, app): profile = Profile(**profile) redis_client = app.redis_store._redis_client cdatabase.db_session.add(profile) cdatabase.db_session.commit() for status in list(ProfileStatus): redis_client.flushall() profile.status = status cdatabase.db_session.commit() res = client.delete(url_for('api_app.profileresource_deploy', id=profile.id)) assert self.assert_json(res.headers) if status == ProfileStatus.ACTIVE: assert self.assert_success(res) assert profile.status == ProfileStatus.PENDING_REMOVAL assert get_queued_jobs(redis_client) == ['commandment.tasks.process_profile_deployment_change(%d)' % profile.id] elif status == ProfileStatus.INACTIVE: assert self.assert_success(res) assert profile.status == ProfileStatus.INACTIVE assert get_queued_jobs(redis_client) == [] else: assert res.status_code == 400 assert profile.status == status assert get_queued_jobs(redis_client) == []
def test_delete(self, client, device): res = client.put(url_for('api_app.deviceresource'), data=device) data = json.loads(res.data) res = client.delete(url_for('api_app.deviceresource', id=data['id'])) res = client.get(url_for('api_app.deviceresource', id=data['id'])) assert res.status_code == 404
def test_delete(self, client, mdm_group): res = client.put(url_for('api_app.mdmgroupresource'), data=mdm_group) data = json.loads(res.data) res = client.delete(url_for('api_app.mdmgroupresource', id=data['id'])) res = client.get(url_for('api_app.mdmgroupresource', id=data['id'])) assert res.status_code == 404
def test_can_switch_membership_of_an_inactive_profile(self, client, profile, mdm_group): profile = Profile(**profile) profile.status = ProfileStatus.INACTIVE mdm_group = MDMGroup(**mdm_group) cdatabase.db_session.add(profile) cdatabase.db_session.add(mdm_group) cdatabase.db_session.commit() res = client.put(url_for('api_app.mdmgroupresource_profile', id=mdm_group.id, profile_id=profile.id)) assert self.assert_json(res.headers) assert self.assert_success(res) data = json.loads(res.data) assert data['message'] == "Success" res = client.delete(url_for('api_app.mdmgroupresource_profile', id=mdm_group.id, profile_id=profile.id)) assert self.assert_json(res.headers) assert self.assert_success(res) data = json.loads(res.data) assert data['message'] == "Success"
def test_when_device_is_removed_from_group_profiles_are_removed( self, client, device, profile, mdm_group): device = Device(**device) profile = Profile(**profile) profile_service = mock.MagicMock() # FIXME: there has to be a better way... original_profile_service = capi.ProfileService capi.ProfileService = mock.MagicMock() capi.ProfileService.return_value = profile_service mdm_group = MDMGroup(**mdm_group) profile.status = ProfileStatus.ACTIVE mdm_group.devices.append(device) mdm_group.profiles.append(profile) cdatabase.db_session.add(device) cdatabase.db_session.add(profile) cdatabase.db_session.add(mdm_group) cdatabase.db_session.commit() try: capi.ProfileService = mock.MagicMock() capi.ProfileService.return_value = profile_service res = client.delete( url_for('api_app.mdmgroupresource_device', id=mdm_group.id, device_id=device.id)) finally: capi.ProfileService = original_profile_service assert self.assert_json(res.headers) assert self.assert_success(res) data = json.loads(res.data) assert data['message'] == "Success" profile_service.finalize_removal.assert_called_once_with( profile, device)
def test_delete(client): """Can we DELETE a resource?""" response = client.delete('/album/1') assert response.status_code == 204 response = client.get('/album/1') assert response.status_code == 404
def test_validate_delete(client): """Do we get back an error message when making a DELETE request that fails validation?""" response = client.delete('/user/1') assert response.status_code == 400 assert response.json['message'] == INVALID_ACTION_MESSAGE