Fixed a bug where we tried to delete a record that did not exist

This commit is contained in:
mike cullerton 2022-04-14 15:37:05 -04:00
parent e036d65ec6
commit a21aea3348
2 changed files with 16 additions and 3 deletions

View File

@ -146,9 +146,9 @@ class DataStoreBase(object):
elif study_id: elif study_id:
query = query.filter(DataStoreModel.study_id == study_id) query = query.filter(DataStoreModel.study_id == study_id)
record = query.first() record = query.first()
session.delete(record) if record is not None:
session.commit() session.delete(record)
# return record session.commit()
@staticmethod @staticmethod
def delete_extra_data_stores(records): def delete_extra_data_stores(records):

View File

@ -275,3 +275,16 @@ class TestDataStoreValidation(BaseTest):
self.assertEqual(3, len(result)) self.assertEqual(3, len(result))
for record in result: for record in result:
self.assertEqual('false', record.value) self.assertEqual('false', record.value)
def test_do_not_fail_deleting_record_that_does_not_exist(self):
file_id = self.add_test_file()
workflow = self.create_workflow('data_store_set')
workflow_api = self.get_workflow_api(workflow)
task = workflow_api.next_task
# The workflow turns the string 'None' into the value None
form_data = {'key': 'my_key', 'value': 'None', 'file_id': file_id}
workflow_api = self.complete_form(workflow, task, form_data)
task = workflow_api.next_task
self.assertEqual('Event_EndEvent', task.name)