cr-connect-workflow/tests/scripts/test_get_pre_reviews.py
2022-06-20 11:26:53 -04:00

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}')