mirror of
https://github.com/sartography/cr-connect-workflow.git
synced 2025-02-23 21:28:32 +00:00
74 lines
3.4 KiB
Python
74 lines
3.4 KiB
Python
from tests.base_test import BaseTest
|
|
|
|
from crc import app
|
|
from crc.services.protocol_builder import ProtocolBuilderService
|
|
|
|
from unittest.mock import patch
|
|
|
|
|
|
class TestGetPreReview(BaseTest):
|
|
|
|
@patch('crc.services.protocol_builder.requests.get')
|
|
def test_get_pre_review(self, mock_get):
|
|
workflow = self.create_workflow('pre_reviews')
|
|
study_id = workflow.study_id
|
|
|
|
app.config['PB_ENABLED'] = True
|
|
mock_get.return_value.ok = True
|
|
mock_get.return_value.text = self.protocol_builder_response('pre_review.json')
|
|
pre_reviews = ProtocolBuilderService.get_pre_reviews(study_id)
|
|
|
|
self.assertEqual(2, len(pre_reviews))
|
|
for i in range(2):
|
|
self.assertEqual(pre_reviews[i]['COMMENTS'], f'This is my comment {i}')
|
|
self.assertEqual(pre_reviews[i]['STATUS'], 'Record')
|
|
self.assertEqual(pre_reviews[i]['DETAIL'], 'Study returned to PI.')
|
|
self.assertEqual(pre_reviews[i]['EVENT_TYPE'], 299)
|
|
self.assertEqual(pre_reviews[i]['FNAME'], f'Firstname_{i}')
|
|
self.assertEqual(pre_reviews[i]['LNAME'], f'Lastname_{i}')
|
|
self.assertEqual(pre_reviews[i]['LOGIN'], f'login_{i}')
|
|
self.assertEqual(pre_reviews[i]['PROT_EVENT_ID'], i + 1)
|
|
self.assertEqual(pre_reviews[i]['REVIEW_TYPE'], 2)
|
|
self.assertEqual(pre_reviews[i]['SS_STUDY_ID'], pre_reviews[i]['UVA_STUDY_TRACKING'])
|
|
self.assertEqual(pre_reviews[i]['IRBREVIEWERADMIN'], f'abc-{i}')
|
|
|
|
@patch('crc.services.protocol_builder.requests.get')
|
|
def test_get_pre_review_error(self, mock_get):
|
|
workflow = self.create_workflow('pre_reviews')
|
|
study_id = workflow.study_id
|
|
|
|
app.config['PB_ENABLED'] = True
|
|
mock_get.return_value.ok = True
|
|
mock_get.return_value.text = self.protocol_builder_response('pre_review_error.json')
|
|
pre_reviews = ProtocolBuilderService.get_pre_reviews(study_id)
|
|
|
|
self.assertEqual(pre_reviews['STATUS'], 'Error')
|
|
self.assertEqual(pre_reviews['DETAIL'], 'No records found.')
|
|
|
|
@patch('crc.services.protocol_builder.requests.get')
|
|
def test_get_pre_review_script(self, mock_get):
|
|
app.config['PB_ENABLED'] = True
|
|
mock_get.return_value.ok = True
|
|
mock_get.return_value.text = self.protocol_builder_response('pre_review.json')
|
|
|
|
workflow = self.create_workflow('get_pre_reviews')
|
|
workflow_api = self.get_workflow_api(workflow)
|
|
task = workflow_api.next_task
|
|
data = task.data
|
|
self.assertIn('pre_reviews', data)
|
|
pre_reviews = data['pre_reviews']
|
|
|
|
self.assertEqual(2, len(pre_reviews))
|
|
for i in range(2):
|
|
self.assertEqual(pre_reviews[i]['COMMENTS'], f'This is my comment {i}')
|
|
self.assertEqual(pre_reviews[i]['STATUS'], 'Record')
|
|
self.assertEqual(pre_reviews[i]['DETAIL'], 'Study returned to PI.')
|
|
self.assertEqual(pre_reviews[i]['EVENT_TYPE'], 299)
|
|
self.assertEqual(pre_reviews[i]['FNAME'], f'Firstname_{i}')
|
|
self.assertEqual(pre_reviews[i]['LNAME'], f'Lastname_{i}')
|
|
self.assertEqual(pre_reviews[i]['LOGIN'], f'login_{i}')
|
|
self.assertEqual(pre_reviews[i]['PROT_EVENT_ID'], i + 1)
|
|
self.assertEqual(pre_reviews[i]['REVIEW_TYPE'], 2)
|
|
self.assertEqual(pre_reviews[i]['SS_STUDY_ID'], pre_reviews[i]['UVA_STUDY_TRACKING'])
|
|
self.assertEqual(pre_reviews[i]['IRBREVIEWERADMIN'], f'abc-{i}')
|