Пример #1
0
    def test_true_has_treatment_cycle_remaining_sessions(self, mock_treatment_cycle_objects):
        """
        Tests if the method is successful when the patient hasn't still reached the session limit of the treatment cycle

        :param mock_treatment_cycle_objects: Mock of the treatment cycle model
        """

        mock_treatment_cycle = mock_treatment_cycle_objects.get.return_value
        mock_treatment_cycle.number_of_sessions = 2
        mock_treatment_cycle.completed_sessions = 1

        TreatmentService.has_treatment_cycle_remaining_sessions(self.id_treatment_cycle)
        mock_treatment_cycle_objects.get.assert_called_once_with(id=self.id_treatment_cycle)
Пример #2
0
    def test_true_is_valid_treatment_cycle(self, mock_treatment_cycle_objects):
        """
        Tests if the method is successful when the treatment cycle from the database is valid

        :param mock_treatment_cycle_objects: Mock of the treatment cycle model
        """

        mock_treatment_cycle_objects.filter.return_value.exists.return_value = True

        TreatmentService.is_valid_treatment_cycle(self.id_treatment_cycle, self.id_patient)
        mock_treatment_cycle_objects.filter.assert_called_once_with(id=self.id_treatment_cycle,
                                                                    patient_id=self.id_patient)
        mock_treatment_cycle_objects.filter.return_value.exists.assert_called_once()
Пример #3
0
    def test_treat_patient(self, mock_treatment_service_2, mock_treatment_service_1,
                           mock_physiotherapist_service, mock_patient_service):
        """
        Tests if method saves treatment successfully

        :param mock_patient_service: Mock of the patient service
        :param mock_physiotherapist_service: Mock of the physiotherapist service
        :param mock_treatment_service: Mock of the treatment service
        :param mock_treatment: Mock of the treatment model
        """

        with patch.object(Treatment.objects, 'create', return_value=Mock(id=str(uuid.uuid4()))) as mock_treatment:
            mock_new_model = mock_treatment.return_value

            return_value = TreatmentService.treat_patient(self.treatment_request, self.id_patient,
                                                          self.id_treatment_cycle, self.id_physiotherapist)
            mock_patient_service.assert_called_once_with(self.id_patient)
            mock_physiotherapist_service.assert_called_once_with(self.id_patient, self.id_physiotherapist)
            mock_treatment_service_1.assert_called_once_with(self.id_treatment_cycle, self.id_patient)
            mock_treatment_service_2.assert_called_once_with(self.id_treatment_cycle)

            mock_treatment.assert_called_once_with(start_date=self.treatment_request['start_date'],
                                                   end_date=self.treatment_request['end_date'],
                                                   summary=self.treatment_request['summary'],
                                                   pain_level=self.treatment_request['pain_level'],
                                                   medication=self.treatment_request['medication'],
                                                   treatment=self.treatment_request['treatment'],
                                                   periodic_evaluation=self.treatment_request['periodic_evaluation'],
                                                   treatment_cycle_id=self.id_treatment_cycle)

            mock_new_model.save.assert_called_once_with()

            self.assertIn(mock_new_model.id, str(return_value))
    def get(request, id_patient, id_treatment_cycle, id_treatment):
        """
        Action when calling the endpoint with GET
        """
        TreatmentInfoView.validate_treatment_info_request(
            id_patient, id_treatment_cycle, id_treatment)

        treatment_info = TreatmentService.treatment_info(id_treatment)

        return JsonResponse(treatment_info)
    def get(request, id_patient, id_treatment_cycle, id_treatment):
        """
        Action when calling the endpoint with GET
        """
        TreatmentInfoView.validate_treatment_info_request(
            id_patient, id_treatment_cycle, id_treatment)

        treatment_report = TreatmentService.treatment_report(id_treatment)

        return FileResponse(treatment_report,
                            filename=id_treatment + '_report.pdf')
Пример #6
0
    def post(request, id_patient, id_treatment_cycle):
        """
        Action when calling the endpoint with POST
        """
        treatment_request = json.loads(request.body.decode('utf-8'))
        TreatmentView.validate_treatment_request(treatment_request)

        new_treatment_info = TreatmentService.treat_patient(treatment_request,
                                                            id_patient,
                                                            id_treatment_cycle,
                                                            request.auth_user['id'])

        return JsonResponse(new_treatment_info)
Пример #7
0
    def get(request):
        """
        Action when calling the endpoint with GET
        Return list of all treatments of physiotherapist

        :param request: request for treatments list
        :return: json response with treatments list
        """

        pagination_args = PaginationViewUtils.get_pagination_args(request)
        current_path = request.build_absolute_uri()

        all_treatment_info = TreatmentService.list_all_physio_treatments(request.auth_user['id'],
                                                                         pagination_args['page_num'],
                                                                         pagination_args['page_size'],
                                                                         current_path)

        return JsonResponse(all_treatment_info, safe=False)
Пример #8
0
    def get(request, id_patient, id_treatment_cycle):
        """
        Action when calling the endpoint with GET
        Return list of treatments of treatment cycle

        :param id_treatment_cycle:
        :param id_patient:
        :param request: request for treatments list
        :return: json response with treatments list
        """

        pagination_args = PaginationViewUtils.get_pagination_args(request)
        current_path = request.build_absolute_uri()

        all_treatment_info = TreatmentService.list_all_treatments(id_patient, id_treatment_cycle,
                                                                  pagination_args['page_num'],
                                                                  pagination_args['page_size'],
                                                                  current_path)

        return JsonResponse(all_treatment_info, safe=False)
Пример #9
0
    def test_list_all_treatments(self, mock_pag_service_valid_page, mock_pag_service_get_results,
                                 mock_treatment_list_serializer, mock_filter_treatments):
        """
        Tests if method returns all treatments successfully

        :param mock_pag_service_valid_page: Mock of page number validation method
        :param mock_pag_service_get_results: Mock of paginated results method
        :param mock_treatment_list_serializer: Mock of treatment list serializer
        :param mock_filter_treatments: Mock of list of filtered treatments
        """

        with patch.object(Paginator, '__init__', return_value=None) as mock_paginator:
            with patch.object(Paginator, 'page', return_value=Mock()) as mock_paginator_page:
                with patch.object(PatientService, 'is_valid_patient', return_value=Mock()) as mock_patient_service:
                    with patch.object(TreatmentService, 'is_valid_treatment_cycle') as mock_treatment_service:
                        pagination_args = PaginationDataRepository.get_valid_pagination()

                        mock_results = mock_pag_service_get_results.return_value
                        mock_all_treatment_list = mock_filter_treatments.return_value

                        return_value = TreatmentService.list_all_treatments(self.id_patient, self.id_treatment_cycle,
                                                                            pagination_args.GET['page_num'],
                                                                            pagination_args.GET['page_size'],
                                                                            pagination_args.build_absolute_uri())

                        mock_patient_service.assert_called_once_with(self.id_patient)
                        mock_treatment_service.assert_called_once_with(self.id_treatment_cycle, self.id_patient)

                        mock_filter_treatments.assert_called_once_with(treatment_cycle_id=self.id_treatment_cycle)
                        mock_paginator.assert_called_once_with(mock_all_treatment_list,
                                                               pagination_args.GET['page_size'])
                        mock_pag_service_valid_page.assert_called_once_with(mock.ANY,
                                                                            int(pagination_args.GET['page_num']))
                        mock_treatment_list_serializer.assert_called_once_with(mock_paginator_page(
                            pagination_args.GET['page_num']))

                        self.assertEqual(return_value, mock_results)