mirror of
https://github.com/sartography/cr-connect-workflow.git
synced 2025-02-24 21:58:32 +00:00
34 lines
1.7 KiB
Python
34 lines
1.7 KiB
Python
from tests.base_test import BaseTest
|
|
|
|
from crc import session, db
|
|
from crc.models.study import StudyModel, StudyAssociated
|
|
from crc.scripts.update_study_associate import UpdateStudyAssociates
|
|
|
|
|
|
class TestSetStudyAssociate(BaseTest):
|
|
|
|
def setUp(self):
|
|
self.workflow = self.create_workflow('study_associates_validation')
|
|
self.workflow_api = self.get_workflow_api(self.workflow)
|
|
self.task = self.workflow_api.next_task
|
|
self.study_id = self.workflow.study_id
|
|
self.update_script = UpdateStudyAssociates()
|
|
|
|
def test_update_study_associate(self):
|
|
self.update_script.do_task(self.task, self.study_id, self.workflow.id, uid='dhf8r', role='PI')
|
|
associates = db.session.query(StudyAssociated).filter(StudyAssociated.study_id == self.study_id).all()
|
|
self.assertEqual(1, len(associates))
|
|
|
|
def test_no_duplicate_associates(self):
|
|
self.update_script.do_task(self.task, self.study_id, self.workflow.id, uid='dhf8r', role='PI')
|
|
self.update_script.do_task(self.task, self.study_id, self.workflow.id, uid='dhf8r', role='PI')
|
|
self.update_script.do_task(self.task, self.study_id, self.workflow.id, uid='dhf8r', role='PI')
|
|
associates = db.session.query(StudyAssociated).filter(StudyAssociated.study_id == self.study_id).all()
|
|
self.assertEqual(1, len(associates))
|
|
|
|
def test_same_uid_in_two_rules(self):
|
|
self.update_script.do_task(self.task, self.study_id, self.workflow.id, uid='dhf8r', role='PI')
|
|
self.update_script.do_task(self.task, self.study_id, self.workflow.id, uid='dhf8r', role='DC')
|
|
associates = db.session.query(StudyAssociated).filter(StudyAssociated.study_id == self.study_id).all()
|
|
self.assertEqual(2, len(associates))
|