Пример #1
0
    def test_patient_details_update_does_not_update_the_patient_header_on_failure(
            self, mock_update):
        updated_header_content = ExaminationMocks.get_patient_details_update_response_content(
        ).get('header')
        self.assertNotEqual(
            ExaminationMocks.get_patient_details_load_response_content().get(
                'givenNames'), updated_header_content.get('givenNames'))

        patient_details, case_status, load_error = PatientDetails.load_by_id(
            ExaminationMocks.EXAMINATION_ID, SessionMocks.ACCESS_TOKEN)
        self.assertIsNone(load_error)
        self.assertIsNotNone(patient_details)

        starting_patient_header = patient_details.case_header
        self.assertEquals(
            starting_patient_header.given_names,
            ExaminationMocks.get_patient_details_load_response_content().get(
                'givenNames'))

        error = patient_details.update(
            ExaminationMocks.get_patient_details_load_response_content(),
            SessionMocks.ACCESS_TOKEN)
        self.assertIsNotNone(error)

        ending_patient_header = patient_details.case_header
        self.assertNotEquals(ending_patient_header.given_names,
                             updated_header_content.get('givenNames'))
        self.assertEquals(starting_patient_header.given_names,
                          ending_patient_header.given_names)
Пример #2
0
 def test_examination_overview_urgent_returns_false_if_urgency_score_is_0_and_case_closed(
         self):
     case_overview_data = ExaminationMocks.get_case_overview_content()
     case_overview_data['urgencyScore'] = 0
     case_overview_data['open'] = False
     case_overview = ExaminationOverview(case_overview_data)
     self.assertIsFalse(case_overview.urgent())
Пример #3
0
 def test_examination_overview_urgent_returns_true_if_urgency_score_gt_than_0_and_case_open(
         self):
     case_overview_data = ExaminationMocks.get_case_overview_content()
     case_overview_data['urgencyScore'] = 1000
     case_overview_data['open'] = True
     case_overview = ExaminationOverview(case_overview_data)
     self.assertIsTrue(case_overview.urgent())
Пример #4
0
def update_medical_team(examination_id, submission, auth_token):
    if settings.LOCAL:
        return ExaminationMocks.get_successful_medical_team_update_response()
    else:
        response = MedexRequest.put(auth_token, '%s/examinations/%s/medical_team' % (settings.API_URL, examination_id),
                                    submission)
        return response
Пример #5
0
def create_bereaved_discussion_event(auth_token, examination_id, submission):
    if settings.LOCAL:
        return ExaminationMocks.get_successful_timeline_event_create_response()
    else:
        return MedexRequest.put(auth_token,
                                '%s/examinations/%s/bereaved_discussion' % (settings.API_URL, examination_id),
                                submission)
Пример #6
0
 def test_initialising_with_the_valid_date_leads_appointment_details_being_set(self):
     bereaved_data = ExaminationMocks.get_patient_details_bereaved_form_data()
     bereaved_data['appointmentDate'] = '2019-03-26T13:29:50.473Z'
     bereaved = BereavedRepresentative(bereaved_data)
     self.assertEqual(bereaved.appointment_day, 26)
     self.assertEqual(bereaved.appointment_month, 3)
     self.assertEqual(bereaved.appointment_year, 2019)
Пример #7
0
 def test_status_code_returns_the_status_code_of_the_response_object(self):
     action = 'loading'
     object_type = 'case'
     error_params = {'action': action, 'type': object_type}
     response = ExaminationMocks.get_unsuccessful_patient_details_load_response(
     )
     error = GenericError(response, error_params)
     self.assertEqual(error.status_code, response.status_code)
Пример #8
0
 def test_initialising_with_the_no_date_leads_no_appointment_details_set(self):
     bereaved_data = ExaminationMocks.get_patient_details_bereaved_form_data()
     bereaved_data['appointmentDate'] = None
     bereaved = BereavedRepresentative(bereaved_data)
     self.assertIsNone(bereaved.appointment_date)
     self.assertIsNone(bereaved.appointment_day)
     self.assertIsNone(bereaved.appointment_month)
     self.assertIsNone(bereaved.appointment_year)
Пример #9
0
 def test_stack_trace_returns_none_if_settings_debug_is_false(self):
     action = 'loading'
     object_type = 'case'
     error_params = {'action': action, 'type': object_type}
     response = ExaminationMocks.get_unsuccessful_patient_details_load_response(
     )
     error = GenericError(response, error_params)
     self.assertEqual(error.stack_trace, None)
Пример #10
0
    def test_calc_age_returns_none_if__both_dates_missing(self):
        examination_overview = ExaminationOverview(
            ExaminationMocks.get_case_index_response_content()['examinations']
            [0])
        examination_overview.date_of_birth = None
        examination_overview.date_of_death = None
        result = examination_overview.calc_age()

        self.assertIsNone(result)
Пример #11
0
 def test_initialising_with_the_none_date_results_in_no_dod(self):
     loaded_data = ExaminationMocks.get_patient_details_load_response_content(
     )
     loaded_data['dateOfDeath'] = NONE_DATE
     patient_details = PatientDetails(loaded_data)
     self.assertIsNone(patient_details.date_of_death)
     self.assertIsNone(patient_details.day_of_death)
     self.assertIsNone(patient_details.month_of_death)
     self.assertIsNone(patient_details.year_of_death)
Пример #12
0
 def test_calc_age_returns_none_if_date_of_death_missing(self):
     examination_overview = ExaminationOverview(
         ExaminationMocks.get_case_index_response_content()['examinations']
         [0])
     birth_date = '2019-02-02T02:02:02.000Z'
     examination_overview.date_of_birth = parse_datetime(birth_date)
     examination_overview.date_of_death = None
     result = examination_overview.calc_age()
     self.assertIsNone(result)
Пример #13
0
 def test_initialising_with_a_bereaved_sets_the_representatives(self):
     loaded_data = ExaminationMocks.get_patient_details_load_response_content(
     )
     bereaved = PeopleMocks.get_bereaved_representative_response_dict()
     loaded_data['representatives'].append(bereaved)
     patient_details = PatientDetails(
         loaded_data, DatatypeMocks.get_modes_of_disposal_list())
     self.assertEqual(len(patient_details.representatives), 1)
     self.assertEqual(patient_details.representatives[0].full_name,
                      bereaved['fullName'])
Пример #14
0
 def test_calc_last_admission_days_ago_returns_0_if_date_of_admission_missing(
         self):
     examination_overview = ExaminationOverview(
         ExaminationMocks.get_case_index_response_content()['examinations']
         [0])
     admission_date = None
     examination_overview.last_admission = parse_datetime(admission_date)
     result = examination_overview.calc_last_admission_days_ago()
     expected_days = 0
     self.assertEqual(result, expected_days)
Пример #15
0
 def test_calc_created_days_ago_returns_correct_number_of_days_if_case_created_date_present(
         self):
     examination_overview = ExaminationOverview(
         ExaminationMocks.get_case_index_response_content()['examinations']
         [0])
     case_created_date = datetime.today() - timedelta(days=1)
     examination_overview.case_created_date = case_created_date
     result = examination_overview.calc_created_days_ago()
     expected_days = 1
     self.assertEqual(result, expected_days)
Пример #16
0
    def test_logger_does_record_case_create_event(self, mock):
        self.set_auth_cookies()
        log_stream = self.init_test_log_stream()
        form_data = ExaminationMocks.get_minimal_create_case_form_data()

        self.client.post('/cases/create', form_data)

        self.assertEqual(log_stream.event_count(), 1)
        event = log_stream.event(0)
        self.assertEqual(event['event_type'], MedexLoggerEvents.CREATED_CASE)
Пример #17
0
 def test_initialising_with_a_mode_of_disposal_and_the_enums_sets_the_mode_of_disposal(
         self):
     loaded_data = ExaminationMocks.get_patient_details_load_response_content(
     )
     mode_of_disposal = list(
         DatatypeMocks.get_modes_of_disposal_list().keys())[0]
     loaded_data['modeOfDisposal'] = mode_of_disposal
     patient_details = PatientDetails(
         loaded_data, DatatypeMocks.get_modes_of_disposal_list())
     self.assertEqual(patient_details.mode_of_disposal, mode_of_disposal)
Пример #18
0
 def test_get_message_returns_the_base_message_with_the_action_and_object_in(
         self):
     action = 'loading'
     object_type = 'case'
     error_params = {'action': action, 'type': object_type}
     error = GenericError(
         ExaminationMocks.get_unsuccessful_patient_details_load_response(),
         error_params)
     self.assertEqual(error.get_message(),
                      messages.GENERAL_ERROR % (action, object_type))
Пример #19
0
 def test_patient_details_update_returns_error_if_update_fails(
         self, mock_update):
     patient_details, case_status, load_error = PatientDetails.load_by_id(
         ExaminationMocks.EXAMINATION_ID, SessionMocks.ACCESS_TOKEN)
     self.assertIsNone(load_error)
     self.assertIsNotNone(patient_details)
     error = patient_details.update(
         ExaminationMocks.get_patient_details_load_response_content(),
         SessionMocks.ACCESS_TOKEN)
     self.assertIsNotNone(error)
Пример #20
0
 def test_patient_details_full_name_correctly_joins_first_and_last_names(
         self):
     patient_details_data = ExaminationMocks.get_patient_details_load_response_content(
     )
     patient_details = PatientDetails(patient_details_data)
     full_name = patient_details.full_name()
     self.assertEqual(
         full_name.split(' ')[0], patient_details_data.get('givenNames'))
     self.assertEqual(
         full_name.split(' ')[1], patient_details_data.get('surname'))
Пример #21
0
    def test_patient_details_get_nhs_number_returns_unknown_if_number_not_present(
            self):
        patient_details_data = ExaminationMocks.get_patient_details_load_response_content(
        )
        patient_details = PatientDetails(patient_details_data)
        self.assertIsNotNone(patient_details)
        patient_details.nhs_number = None

        display_nhs_number = patient_details.get_nhs_number()

        self.assertEquals(display_nhs_number, 'Unknown')
Пример #22
0
 def test_calc_age_correctly_calculates_the_age_if_dates_present(self):
     examination_overview = ExaminationOverview(
         ExaminationMocks.get_case_index_response_content()['examinations']
         [0])
     birth_date = '2018-02-02T02:02:02.000Z'
     death_date = '2019-02-02T02:02:02.000Z'
     examination_overview.date_of_birth = parse_datetime(birth_date)
     examination_overview.date_of_death = parse_datetime(death_date)
     result = examination_overview.calc_age()
     expected_age = 1
     self.assertEqual(result, expected_age)
Пример #23
0
    def test_medical_team_update_returns_error_if_update_fails(
            self, mock_update):
        medical_team, case_status, load_error = MedicalTeam.load_by_id(
            ExaminationMocks.EXAMINATION_ID, SessionMocks.ACCESS_TOKEN)
        self.assertIsNone(load_error)
        self.assertIsNotNone(case_status)
        self.assertIsNotNone(medical_team)

        error = medical_team.update(
            ExaminationMocks.get_medical_team_load_response_content(),
            SessionMocks.ACCESS_TOKEN)
        self.assertIsNotNone(error)
Пример #24
0
    def test_landing_on_the_landing_page_returns_the_correct_template(self):
        self.set_auth_cookies()
        response = self.client.get('/')
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertTemplateUsed(response, 'home/index.html')
        context_user = self.get_context_value(response.context, 'session_user')
        self.assertIsNot(context_user.examinations, None)
        self.assertIs(type(context_user.examinations), list)

        count = len(ExaminationMocks.get_case_index_response_content().get(
            'examinations'))
        self.assertEqual(len(context_user.examinations), count)
Пример #25
0
    def test_get_forms_for_role_where_nothing_published_returns_form_with_enabled_true(self):
        user = User()
        user.auth_token = SessionMocks.ACCESS_TOKEN
        user.id_token = SessionMocks.ID_TOKEN_NAME
        user.check_logged_in()

        data = ExaminationMocks.get_empty_case_breakdown_response_content()
        available_forms = user.get_forms_for_role(
            CaseBreakdown(obj_dict=data, medical_team=None))

        self.assertEquals(available_forms[0]['id'], 'admin-notes')
        self.assertEquals(available_forms[0]['enabled'], 'true')
Пример #26
0
    def test_logger_does_record_close_case(self):
        self.set_auth_cookies()
        form_data = ExaminationMocks.get_case_outcome_close_case_form_data()
        log_stream = self.init_test_log_stream()

        self.client.post(
            '/cases/%s/case-outcome' % ExaminationMocks.EXAMINATION_ID,
            form_data)

        self.assertEqual(log_stream.event_count(), 1)
        event = log_stream.event(0)
        self.assertEqual(event['event_type'], MedexLoggerEvents.CLOSED_CASE)
Пример #27
0
    def test_card_presenter_returns_a_correctly_formatted_appointment_date_if_date_present(
            self):
        examination_overview = ExaminationOverview(
            ExaminationMocks.get_case_index_response_content()['examinations']
            [0])
        given_date = '2019-02-02T02:02:02.000Z'
        examination_overview.appointment_date = parse_datetime(given_date)

        presenter = case_card_presenter(examination_overview)
        result = presenter['appointment_date']

        expected_date = '02.02.2019'
        self.assertEqual(result, expected_date)
Пример #28
0
    def test_get_forms_for_role_with_items_published_returns_form_with_enabled_false(self):
        user = User()
        user.auth_token = SessionMocks.ACCESS_TOKEN
        user.id_token = SessionMocks.ID_TOKEN_NAME
        user.check_logged_in()

        data = ExaminationMocks.get_case_breakdown_response_content()
        data['caseBreakdown']['admissionNotes']['usersDraft'] = None
        available_forms = user.get_forms_for_role(
            CaseBreakdown(obj_dict=data, medical_team=None))

        self.assertEquals(available_forms[0]['id'], 'admin-notes')
        self.assertEquals(available_forms[0]['enabled'], 'false')
Пример #29
0
    def test_logger_does_record_create_draft_timeline_event(self):
        self.set_auth_cookies()
        log_stream = self.init_test_log_stream()
        form_data = ExaminationMocks.get_pre_scrutiny_draft_event_data()

        self.client.post(
            '/cases/%s/case-breakdown' % ExaminationMocks.EXAMINATION_ID,
            form_data)

        self.assertEqual(log_stream.event_count(), 1)
        event = log_stream.event(0)
        self.assertEqual(
            event['event_type'], MedexLoggerEvents.SAVED_TIMELINE_EVENT %
            PreScrutinyEventForm().__class__.__name__)
Пример #30
0
    def test_logger_does_record_outstanding_items_submission(self):
        self.set_auth_cookies()
        form_data = ExaminationMocks.get_case_outcome_outstanding_items_form_data(
        )
        log_stream = self.init_test_log_stream()

        self.client.post(
            '/cases/%s/case-outcome' % ExaminationMocks.EXAMINATION_ID,
            form_data)

        self.assertEqual(log_stream.event_count(), 1)
        event = log_stream.event(0)
        self.assertEqual(event['event_type'],
                         MedexLoggerEvents.SAVED_OUTSTANDING_ITEM)