def test_03_delete_application_success(self): # set up all the bits we need data = ApplicationFixtureFactory.incoming_application() del data["admin"]["current_journal"] dataset = [data] * 10 # create the account we're going to work as account = models.Account() account.set_id("test") account.set_name("Tester") account.set_email("*****@*****.**") account.add_role("publisher") # call create on the objects (which will save it to the index) ids = ApplicationsBulkApi.create(dataset, account) # let the index catch up time.sleep(2) # now delete half of them dels = ids[:5] ApplicationsBulkApi.delete(dels, account) # let the index catch up time.sleep(2) for id in dels: ap = models.Suggestion.pull(id) assert ap is None for id in ids[5:]: ap = models.Suggestion.pull(id) assert ap is not None
def bulk_application_delete(): # get the data from the request try: data = json.loads(request.data.decode("utf-8")) except: raise Api400Error("Supplied data was not valid JSON") ApplicationsBulkApi.delete(data, current_user._get_current_object()) return no_content()
def bulk_application_delete(): # get the data from the request try: data = json.loads(request.data) except: raise Api400Error("Supplied data was not valid JSON") ApplicationsBulkApi.delete(data, current_user._get_current_object()) return no_content()
def test_04_delete_applications_fail(self): # set up all the bits we need data = ApplicationFixtureFactory.incoming_application() del data["admin"]["current_journal"] dataset = [data] * 10 # create the account we're going to work as account = models.Account() account.set_id("test") account.set_name("Tester") account.set_email("*****@*****.**") # call create on the objects (which will save it to the index) ids = ApplicationsBulkApi.create(dataset, account) # let the index catch up time.sleep(2) # call delete on the object in various context that will fail # without an account with self.assertRaises(Api401Error): ApplicationsBulkApi.delete(ids, None) # with the wrong account account.set_id("other") with self.assertRaises(Api400Error): ApplicationsBulkApi.delete(ids, account) # on the wrong id ids.append("adfasdfhwefwef") account.set_id("test") with self.assertRaises(Api400Error): ApplicationsBulkApi.delete(ids, account) # on one with a disallowed workflow status created = models.Suggestion.pull(ids[3]) created.set_application_status(constants.APPLICATION_STATUS_ACCEPTED) created.save() time.sleep(2) with self.assertRaises(Api400Error): ApplicationsBulkApi.delete(ids, account)