Be sure to delete the data store items when you delete a study.

This commit is contained in:
Dan 2022-03-12 13:35:04 -05:00
parent 52b5e1d34a
commit c8e987cd39
2 changed files with 16 additions and 0 deletions

View File

@ -231,6 +231,7 @@ class StudyService(object):
session.query(StudyAssociated).filter_by(study_id=study_id).delete() session.query(StudyAssociated).filter_by(study_id=study_id).delete()
session.query(EmailModel).filter_by(study_id=study_id).delete() session.query(EmailModel).filter_by(study_id=study_id).delete()
session.query(StudyEvent).filter_by(study_id=study_id).delete() session.query(StudyEvent).filter_by(study_id=study_id).delete()
session.query(DataStoreModel).filter_by(study_id=study_id).delete()
for workflow in session.query(WorkflowModel).filter_by(study_id=study_id): for workflow in session.query(WorkflowModel).filter_by(study_id=study_id):
StudyService.delete_workflow(workflow.id) StudyService.delete_workflow(workflow.id)
study = session.query(StudyModel).filter_by(id=study_id).first() study = session.query(StudyModel).filter_by(id=study_id).first()

View File

@ -106,6 +106,21 @@ class DataStoreTest(BaseTest):
studyreponse = session.query(DataStoreModel).filter_by(id=oldid).first() studyreponse = session.query(DataStoreModel).filter_by(id=oldid).first()
self.assertEqual(studyreponse,None) self.assertEqual(studyreponse,None)
def test_delete_study_with_datastore(self):
study = self.create_study()
study_data = DataStoreSchema().dump(self.TEST_STUDY_ITEM)
study_data['study_id'] = study.id
self.assertEqual(0, session.query(DataStoreModel).count())
rv = self.app.post('/v1.0/datastore',
content_type="application/json",
headers=self.logged_in_headers(),
data=json.dumps(study_data))
self.assertEqual(1, session.query(DataStoreModel).count())
rv = self.app.delete('/v1.0/study/%i' % study.id, headers=self.logged_in_headers())
self.assertEqual(0, session.query(DataStoreModel).count())
def test_data_crosstalk(self): def test_data_crosstalk(self):
"""Test to make sure that data saved for user or study is not accessible from the other method""" """Test to make sure that data saved for user or study is not accessible from the other method"""