class TestManipulatedMedicineList(TestCase):

    def setUp(self):
        self.my_view = ListManipulatedMedicinenByHealthProfessional()
        self.factory = RequestFactory()

        # Making a HealthProfessional
        self.user = HealthProfessional()
        self.user.pk = 1
        self.user.email = "*****@*****.**"
        self.user.password = "******"
        self.user.crm = "54321"
        self.user.save()

        self.medicine = ManipulatedMedicine()
        self.medicine.recipe_name = "Medicamento test"
        self.medicine.physical_form = "test forma fisica"
        self.medicine.quantity = 1.0
        self.medicine.measurement = "kg"
        self.medicine.composition = "teste"
        self.medicine.health_professional = self.user
        self.medicine.save()

        self.health_professional_medicines = ManipulatedMedicine.objects.filter(health_professional=self.user)

    def test_medicine_len_equal(self):
        self.assertEqual(len(self.health_professional_medicines), 1)

    def test_medicine_len_false(self):
        self.assertNotEqual(len(self.health_professional_medicines), 50)

    '''def test_get(self):
    def setUp(self):
        self.my_view = CreateCustomExams()
        self.name_min = None
        self.name_valid = "Alguma coisa"
        self.name_exists = "Invalido"

        self.description_max = """adjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihai
        ufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuah
        adjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdha
        ihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhf
        iahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiu
        hfiuahfidhfiahiudfhaiufhdiuah"""

        self.name_max = """adjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihai
        ufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuah
        adjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdha
        ihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhf
        iahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiu
        hfiuahfidhfiahiudfhaiufhdiuah"""

        self.description_min = "as"
        self.description_valid = "Examina alguma coisa"

        custom_exam = CustomExam()
        custom_exam.name = "Invalido"
        user = HealthProfessional()
        user.crm = "54321"
        user.save()
        custom_exam.health_professional_FK = user
        custom_exam.save()
class TesteCreateMedicine(TestCase):
    def setUp(self):

        self.factory = RequestFactory()

        self.form_class = CreateManipulatedMedicineForm
        self.class_name = CreateMedicineView

        # Creating a Health Professional
        self.health_professional = HealthProfessional()
        self.health_professionalcrm = '12345'
        self.health_professionalcrm_state = 'US'
        self.health_professional.save()

        self.invalid_name = 'a' * 150
        self.valid_name = 'a' * 150

    def test_medicine_redirect_false(self):
        my_class = self.class_name()
        self.assertNotEqual(my_class.get_success_url(), 'teste')

    def test_medicine_redirect_true(self):
        my_class = self.class_name()
        self.assertEqual(my_class.get_success_url(),
                         '/pt-br/medicine/list_all_medicines/')
    def setUp(self):
        self.name_valid = 'Teste Nome'
        self.name_invalid = 'T'
        self.name_invalid_TYPE = 'a@hjasgdjasda1l'
        self.name_invalid_MAX = 'aasdkgasghdhjadjasvdashdjavcdbnmhasdvbdmmasbdnmhamsjdhgegdhjgsavdhabvdbnasd'
        self.name_invalid_MIN = 'a'

        self.phone_valid = '(61)1234-56789'
        self.phone_invalid = '456'
        self.phone_invalid_MIN = '456'
        self.phone_invalid_TYPE = 'aas1@a;$aaa'
        self.phone_invalid_MAX = '456134564898761'

        self.email_valid = '*****@*****.**'
        self.email_invalid = 'admin.com'
        self.email_invalid_TYPE = 'admin.com'
        self.email_invalid_MIN = 'a@a.'
        self.email_invalid_MAX = '*****@*****.**'
        self.email_invalid_BASE = '*****@*****.**'

        self.password_valid = '1234567'
        self.password_invalid = '123'
        self.password_invalid_MAX = '1234567891011'
        self.password_invalid_MIN = '123'
        self.password_invalid_TYPE = 'a@d13!*'

        self.date_of_birth_valid = '10/12/1990'
        self.date_of_birth_invalid = '18'
        self.date_of_birth_invalid_FORMAT = '18'
        self.date_of_birth_invalid_MIN = '10/12/2010'

        self.sex_valid = 'M'
        self.sex_invalid = 'A'

        self.crm_valid = '12345'
        self.crm_valid_existent = '54321'
        self.crm_invalid = '1'
        self.crm_invalid_MIN = '13'
        self.crm_invalid_MAX = '1564564564689756431367'
        self.crm_invalid_FORMAT = 'a4'
        self.crm_invalid_TYPE = 'a1@13'

        self.crm_state_valid = 'DF'
        self.crm_state_invalid = '1234a'
        self.crm_state_invalid_MAX = 'aaaaaaaa'
        self.crm_state_invalid_MIN = 'A'
        self.crm_state_invalid_NONE = None

        self.speciality_valid = 'Alergia'
        self.speciality_invalid_MIN = 'A'
        self.speciality_invalid_MAX = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'

        user = HealthProfessional()
        user.crm = "54321"
        user.save()

        user = User()
        user.email = "*****@*****.**"
        user.save()
class TestListFavoritePrescription(TestCase):
    def setUp(self):
        self.factory = RequestFactory()
        self.client = Client()
        self.view = CreatePrescriptionView()

        self.patient = Patient()
        self.patient.pk = 1
        self.patient.name = "Paciente de teste"
        self.patient.date_of_birth = "1991-10-21"
        self.patient.phone = "06199999999"
        self.patient.email = "*****@*****.**"
        self.patient.sex = "M"
        self.patient.id_document = "1000331"
        self.patient.CEP = "72850735"
        self.patient.UF = "DF"
        self.patient.city = "Brasília"
        self.patient.neighborhood = "Asa sul"
        self.patient.complement = "Bloco 2 QD 701"
        self.patient.save()

        self.health_professional = HealthProfessional()
        self.health_professional.pk = 1
        self.health_professional.crm = '12345'
        self.health_professional.crm_state = 'US'
        self.health_professional.save()

        self.manipulated_medicine = ManipulatedMedicine()
        self.manipulated_medicine.pk = 1
        self.manipulated_medicine.recipe_name = "teste"
        self.manipulated_medicine.physical_form = "asdadsafdf"
        self.manipulated_medicine.quantity = 12
        self.manipulated_medicine.measurement = "kg"
        self.manipulated_medicine.composition = "aosdjoaisjdoiajsdoij"
        self.manipulated_medicine.health_professional = self.health_professional
        self.manipulated_medicine.save()

        self.disease = Disease()
        self.disease.pk = 1
        self.disease.id_cid_10 = "A01"
        self.disease.description = "A random disease"
        self.disease.save()

        self.health_professional = HealthProfessional.objects.create_user(email='*****@*****.**',
                                                                          password='******')

    def teste_list_prescription(self):
        request = self.factory.get('/')
        request.user = self.health_professional

        response = ListFavoritePrescription.as_view()(request)
        self.assertEqual(response.status_code, 200)
示例#6
0
    def setUp(self):
        self.my_view = CustomActivePrincipleForm()
        self.name_valid = "Alguma coisa"
        self.name_exists = "Invalido"

        self.name_max = """aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                                aaaaaaaaaaaaaaaaaaaaaaaa+1"""

        custom_principle = CustomActivePrinciple()
        custom_principle.name = "test"
        user = HealthProfessional()
        user.crm = "54321"
        user.save()
        custom_principle.created_by = user
        custom_principle.save()
示例#7
0
class ListRecomendationCustomViewTeste(TestCase):
    def setUp(self):
        self.factory = RequestFactory()

        self.health_professional = HealthProfessional()
        self.health_professional.pk = 1
        self.health_professional.crm = '12345'
        self.health_professional.crm_state = 'US'
        self.health_professional.save()

    def test_recommendation_get_with_health_professional(self):
        request = self.factory.get('/recommendation/create_custom')
        request.user = self.health_professional

        # Get the response
        response = ListCustomRecommendations.as_view()(request)
        self.assertEqual(response.status_code, 200)
示例#8
0
class TestListPatterns(TestCase):
    def setUp(self):
        self.factory = RequestFactory()
        self.client = Client()
        self.view = CreatePatternView()

        self.patient = Patient()
        self.patient.pk = 1
        self.patient.name = "Paciente de teste"
        self.patient.date_of_birth = "1991-10-21"
        self.patient.phone = "06199999999"
        self.patient.email = "*****@*****.**"
        self.patient.sex = "M"
        self.patient.id_document = "1000331"
        self.patient.CEP = "72850735"
        self.patient.UF = "DF"
        self.patient.city = "Brasília"
        self.patient.neighborhood = "Asa sul"
        self.patient.complement = "Bloco 2 QD 701"
        self.patient.save()

        self.health_professional = HealthProfessional()
        self.health_professional.pk = 1
        self.health_professional.crm = '12345'
        self.health_professional.crm_state = 'US'
        self.health_professional.save()

        self.health_professional = HealthProfessional.objects.create_user(
            email='*****@*****.**', password='******')

        self.pattern = Pattern()
        self.pattern.name = "Nome teste"
        self.pattern.user_creator = self.health_professional
        self.pattern.font = "Times-Roman"
        self.pattern.font_size = "12"
        self.pattern.pagesize = "letter"
        self.pattern.clinic = "Clinic name"
        self.pattern.header = "Header"
        self.pattern.footer = "Footer"

    def teste_list_prescription(self):
        request = self.factory.get('prescription/list_patterns/')
        request.user = self.health_professional

        response = ListPatterns.as_view()(request)
        self.assertEqual(response.status_code, 200)
示例#9
0
class TestCreatePattern(TestCase):
    def setUp(self):
        self.factory = RequestFactory()

        self.my_class = Pattern
        self.my_view = CreatePatternView()

        self.user = HealthProfessional()
        self.user.email = '*****@*****.**'
        self.user.save()

        self.name = "Pattern de teste"
        self.user_creator = self.user
        self.clinic = "clinica de teste"
        self.header = "header de teste"
        self.font = 'Helvetica'
        self.font_size = '12'
        self.footer = "footer de teste"
        self.pagesize = "letter"

    def test_pattern_redirect_valid(self):
        data = {
            'name': self.name,
            'clinic': self.clinic,
            'font': 'Helvetica',
            'font_size': '12',
            'header': self.header,
            'footer': self.footer,
            'pagesize': self.pagesize,
        }

        request = self.factory.post('/', data)
        request.user = self.user

        response = CreatePatternView.as_view()(request)

        self.assertEqual(response.status_code, 302)

    def test_pattern_get(self):
        request = self.factory.get('/prescription/create_prescription_model/')
        request.user = self.user

        # Get the response
        response = self.my_view.get(request)
        self.assertEqual(response.status_code, 200)
示例#10
0
class CreateRecomendationCustomViewTeste(TestCase):
    def setUp(self):
        self.factory = RequestFactory()

        self.health_professional = HealthProfessional()
        self.health_professional.pk = 1
        self.health_professional.crm = '12345'
        self.health_professional.crm_state = 'US'
        self.health_professional.save()

    def test_recommendation_get_with_health_professional(self):
        request = self.factory.get('/recommendation/create_custom')
        request.user = self.health_professional

        # Get the response
        response = CustomRecommendationCreateView.as_view()(request)
        self.assertEqual(response.status_code, 200)

    def test_recommendation_post_with_health_professional_valid(self):
        context = {
            'name': "Diabetes",
            'description': "Alguma descrição aceitavel"
        }

        request = self.factory.post('/prescription/create_modal/', context)
        request.user = self.health_professional

        # Get the response
        response = CustomRecommendationCreateView.as_view()(request)
        self.assertEqual(response.status_code, 302)

    def test_recommendation_post_with_health_professional_invalid(self):
        context = {'name': "A", 'description': "Alguma descrição aceitavel"}

        request = self.factory.post('/prescription/create_modal/', context)
        request.user = self.health_professional

        # Get the response
        response = CustomRecommendationCreateView.as_view()(request)
        self.assertEqual(response.status_code, 200)
示例#11
0
class TestRequestHomePatient(TestCase):
    def setUp(self):
        self.client = Client()
        self.factory = RequestFactory()
        self.patient = Patient()
        self.patient.pk = 1
        self.patient.name = "Paciente de teste"
        self.patient.date_of_birth = "1991-10-21"
        self.patient.phone = "06199999999"
        self.patient.email = "*****@*****.**"
        self.patient.sex = "M"
        self.patient.id_document = "1000331"
        self.patient.CEP = "72850735"
        self.patient.UF = "DF"
        self.patient.city = "Brasília"
        self.patient.neighborhood = "Asa sul"
        self.patient.complement = "Bloco 2 QD 701"
        self.patient.save()

        self.health_professional = HealthProfessional()
        self.health_professional.pk = 1
        self.health_professional.crm = '12345'
        self.health_professional.crm_state = 'US'
        self.health_professional.specialty_first = 'Nutricao'
        self.health_professional.specialty_second = 'Pediatria'
        self.health_professional.save()

        self.health_professional = HealthProfessional.objects.create_user(
            email='*****@*****.**', password='******')

        self.health_professional_no_specialty_second = HealthProfessional()
        self.health_professional_no_specialty_second.pk = 2
        self.health_professional_no_specialty_second.crm = '11111'
        self.health_professional_no_specialty_second.crm_state = 'US'
        self.health_professional_no_specialty_second.specialty_first = 'Nutricao'
        self.health_professional_no_specialty_second.specialty_second = 'Nao Possui'
        self.health_professional_no_specialty_second.email = '*****@*****.**'
        self.health_professional_no_specialty_second.password = '******'
        self.health_professional_no_specialty_second.save()

        self.disease = Disease()
        self.disease.pk = 1
        self.disease.id_cid_10 = "A01"
        self.disease.description = "A random disease"
        self.disease.save()

        self.prescription = NoPatientPrescription()
        self.prescription.pk = 1
        self.prescription.health_professional = self.health_professional
        self.prescription.cid = self.disease
        self.prescription.patient = "Algum nome"
        self.prescription.save()

        self.prescription_2 = NoPatientPrescription()
        self.prescription_2.pk = 2
        self.prescription_2.health_professional = self.health_professional
        self.prescription_2.cid = self.disease
        self.prescription_2.patient = "Algum nome"
        self.prescription_2.save()

        self.prescription_3 = PatientPrescription()
        self.prescription_3.pk = 3
        self.prescription_3.health_professional = self.health_professional
        self.prescription_3.cid = self.disease
        self.prescription_3.patient = self.patient
        self.prescription_3.save()

        self.prescription_4 = PatientPrescription()
        self.prescription_4.pk = 4
        self.prescription_4.health_professional = self.health_professional
        self.prescription_4.cid = self.disease
        self.prescription_4.patient = self.patient
        self.prescription_4.save()

        self.prescription_5 = PatientPrescription()
        self.prescription_5.pk = 5
        self.prescription_5.health_professional = self.health_professional
        self.prescription_5.cid = self.disease
        self.prescription_5.patient = self.patient
        self.prescription_5.save()

        self.prescription_6 = PatientPrescription()
        self.prescription_6.pk = 6
        self.prescription_6.health_professional = self.health_professional_no_specialty_second
        self.prescription_6.cid = self.disease
        self.prescription_6.patient = self.patient
        self.prescription_6.save()

        self.manipulated_medicine = ManipulatedMedicine()
        self.manipulated_medicine.pk = 1
        self.manipulated_medicine.recipe_name = "teste"
        self.manipulated_medicine.physical_form = "asdadsafdf"
        self.manipulated_medicine.quantity = 12
        self.manipulated_medicine.measurement = "kg"
        self.manipulated_medicine.composition = "aosdjoaisjdoiajsdoij"
        self.manipulated_medicine.health_professional = self.health_professional
        self.manipulated_medicine.save()

        self.manipulated_medicine_2 = ManipulatedMedicine()
        self.manipulated_medicine_2.pk = 2
        self.manipulated_medicine_2.recipe_name = "teste"
        self.manipulated_medicine_2.physical_form = "asdadsafdf"
        self.manipulated_medicine_2.quantity = 12
        self.manipulated_medicine_2.measurement = "kg"
        self.manipulated_medicine_2.composition = "aosdjoaisjdoiajsdoij"
        self.manipulated_medicine_2.health_professional = self.health_professional
        self.manipulated_medicine_2.save()

        self.hasmanipulated_medicine = PrescriptionHasManipulatedMedicine()
        self.hasmanipulated_medicine.manipulated_medicine = self.manipulated_medicine
        self.hasmanipulated_medicine.posology = "asd"
        self.hasmanipulated_medicine.quantity = 1
        self.hasmanipulated_medicine.pk = 2
        self.hasmanipulated_medicine.via = 'Via Intravenosa'
        self.hasmanipulated_medicine.prescription_medicine = self.prescription
        self.hasmanipulated_medicine.save()

        self.hasmanipulated_medicine = PrescriptionHasManipulatedMedicine()
        self.hasmanipulated_medicine.manipulated_medicine = self.manipulated_medicine_2
        self.hasmanipulated_medicine.posology = "asd"
        self.hasmanipulated_medicine.quantity = 1
        self.hasmanipulated_medicine.pk = 12
        self.hasmanipulated_medicine.via = 'Via Intravenosa'
        self.hasmanipulated_medicine.prescription_medicine = self.prescription
        self.hasmanipulated_medicine.save()

        self.hasmanipulated_medicine = PrescriptionHasManipulatedMedicine()
        self.hasmanipulated_medicine.manipulated_medicine = self.manipulated_medicine
        self.hasmanipulated_medicine.posology = "asd"
        self.hasmanipulated_medicine.quantity = 1
        self.hasmanipulated_medicine.pk = 4
        self.hasmanipulated_medicine.via = 'Via Intravenosa'
        self.hasmanipulated_medicine.prescription_medicine = self.prescription_2
        self.hasmanipulated_medicine.save()

        self.recommendation = NewRecommendation()
        self.recommendation.recommendation_description = "recomendacao de teste"
        self.recommendation.save()

        self.prescription_has_recommendation = PrescriptionNewRecommendation()
        self.prescription_has_recommendation.prescription = self.prescription
        self.prescription_has_recommendation.recommendation = self.recommendation
        self.prescription_has_recommendation.save()

        self.prescription_has_recommendation = PrescriptionNewRecommendation()
        self.prescription_has_recommendation.prescription = self.prescription_3
        self.prescription_has_recommendation.recommendation = self.recommendation
        self.prescription_has_recommendation.save()

        self.medicine = Medicine()
        self.medicine.name = "asdoajsdoiasj"
        self.medicine.active_ingredient = "dsofaksdofk"
        self.medicine.laboratory = "dofijasoifjjf"
        self.medicine.description = "oiajdoaisjddj"
        self.medicine.save()

        self.medicine_2 = Medicine()
        self.medicine_2.name = "asdoajsdoiasj"
        self.medicine_2.active_ingredient = "dsofaksdofk"
        self.medicine_2.laboratory = "dofijasoifjjf"
        self.medicine_2.description = "oiajdoaisjddj"
        self.medicine_2.save()

        self.prescription_has_medicine = PrescriptionHasMedicine()
        self.prescription_has_medicine.medicine = self.medicine
        self.prescription_has_medicine.posology = "asd"
        self.prescription_has_medicine.quantity = 1
        self.prescription_has_medicine.pk = 2
        self.prescription_has_medicine.via = 'Via Intravenosa'
        self.prescription_has_medicine.prescription_medicine = self.prescription
        self.prescription_has_medicine.save()

        self.prescription_has_medicine = PrescriptionHasMedicine()
        self.prescription_has_medicine.medicine = self.medicine_2
        self.prescription_has_medicine.posology = "asd"
        self.prescription_has_medicine.quantity = 1
        self.prescription_has_medicine.pk = 21
        self.prescription_has_medicine.via = 'Via Intravenosa'
        self.prescription_has_medicine.prescription_medicine = self.prescription
        self.prescription_has_medicine.save()

        self.default_exam = DefaultExam()
        self.default_exam.id_tuss = 'oiafj'
        self.default_exam.save()

        self.custom_exam = CustomExam()
        self.custom_exam.health_professional_FK = self.health_professional
        self.custom_exam.save()

        self.new_exam = NewExam()
        self.new_exam.exam_description = 'Test String'
        self.new_exam.save()

        self.prescription_default_exam = PrescriptionDefaultExam()
        self.prescription_default_exam.exam = self.default_exam
        self.prescription_default_exam.prescription = self.prescription
        self.prescription_default_exam.save()

        self.prescription_default_exam = PrescriptionDefaultExam()
        self.prescription_default_exam.exam = self.default_exam
        self.prescription_default_exam.prescription = self.prescription_4
        self.prescription_default_exam.save()

        self.prescription_custom_exam = PrescriptionCustomExam()
        self.prescription_custom_exam.exam = self.custom_exam
        self.prescription_custom_exam.prescription = self.prescription
        self.prescription_custom_exam.save()

        self.prescription_new_exam = PrescriptionNewExam()
        self.prescription_new_exam.exam = self.new_exam
        self.prescription_new_exam.prescription = self.prescription
        self.prescription_new_exam.save()

        self.pattern = Pattern()
        self.pattern.name = "Pattern de teste"
        self.pattern.user_creator = self.health_professional
        self.pattern.clinic = "clinica de teste"
        self.pattern.header = "header de teste"
        self.pattern.font = 'Helvetica'
        self.pattern.font_size = '12'
        self.pattern.footer = "footer de teste"
        self.pattern.pagesize = "letter"
        self.pattern.pk = 1
        self.pattern.logo = None
        self.pattern.save()

        self.pattern = Pattern()
        self.pattern.name = "Pattern de teste"
        self.pattern.user_creator = self.health_professional
        self.pattern.clinic = "clinica de teste"
        self.pattern.header = "header de teste"
        self.pattern.font = 'Helvetica'
        self.pattern.font_size = '12'
        self.pattern.footer = "footer de teste"
        self.pattern.pagesize = "A4"
        self.pattern.pk = 2
        self.pattern.logo = None
        self.pattern.save()

        self.pattern = Pattern()
        self.pattern.name = "Pattern de teste"
        self.pattern.user_creator = self.health_professional
        self.pattern.clinic = "clinica de teste"
        self.pattern.header = "header de teste"
        self.pattern.font = 'Helvetica'
        self.pattern.font_size = '12'
        self.pattern.footer = "footer de teste"
        self.pattern.pagesize = "A5"
        self.pattern.pk = 3
        self.pattern.logo = None
        self.pattern.save()
class CreateRecomendationCustomFormTeste(TestCase):
    def setUp(self):
        self.name_valid = "Diabetes"
        self.name_valid_duplicate = "Diabetes Dois"
        self.name_invalid_min = "A"
        self.name_invalid_max = """NomeinvalidoNomeinvalidoNomeinvalidoNomeinvalidoNomeinvalidoNomeinvalidoNomeinvalido
        NomeinvalidoNomeinvalidoNomeinvalidoNomeinvalidoNomeinvalidoNomeinvalidoNomeinvalidoNomeinvalidoNomeinvalido"""
        self.description_valid = "Alguma descrição aceitavel"
        self.description_invalid_min = "A"
        self.description_invalid_max = """adjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihai
        ufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuah
        adjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdha
        ihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhf
        iahdfiahdufhaisdhfiuahdfuihaiufdhaihfiuhfiuahfidhfiahiudfhaiufhdiuahadjhfiahdfiahdufhaisdhfiuahdfuihaiufdhaihfiu
        hfiuahfidhfiahiudfhaiufhdiuah"""

        self.health_professional = HealthProfessional()
        self.health_professional.pk = 1
        self.health_professional.crm = '12345'
        self.health_professional.crm_state = 'US'
        self.health_professional.save()

        self.custom_recomendation = CustomRecommendation()
        self.custom_recomendation.name = self.name_valid_duplicate
        self.custom_recomendation.description = self.description_valid
        self.custom_recomendation.health_professional = self.health_professional
        self.custom_recomendation.save()

        self.factory = RequestFactory()
        self.request = self.factory.get('/recommendation/create_custom')
        self.request.user = self.health_professional

    def test_custom_recommendation_form_valid(self):
        form_data = {
            'name': self.name_valid,
            'description': self.description_valid
        }
        form = CreateRecomendationCustomForm(data=form_data)
        form.get_request(self.request)

        self.assertTrue(form.is_valid())

    def test_custom_recommendation_form_invalid_description_min(self):
        form_data = {
            'name': self.name_valid,
            'description': self.description_invalid_min
        }
        form = CreateRecomendationCustomForm(data=form_data)
        form.get_request(self.request)

        self.assertFalse(form.is_valid())

    def test_custom_recommendation_form_invalid_name_min(self):
        form_data = {
            'name': self.name_invalid_min,
            'description': self.description_valid
        }
        form = CreateRecomendationCustomForm(data=form_data)
        form.get_request(self.request)

        self.assertFalse(form.is_valid())

    def test_custom_recommendation_form_invalid_name_max(self):
        form_data = {
            'name': self.name_invalid_max,
            'description': self.description_valid
        }
        form = CreateRecomendationCustomForm(data=form_data)
        form.get_request(self.request)

        self.assertFalse(form.is_valid())

    def test_custom_recommendation_form_invalid_description_max(self):
        form_data = {
            'name': self.name_valid,
            'description': self.description_invalid_max
        }
        form = CreateRecomendationCustomForm(data=form_data)
        form.get_request(self.request)

        self.assertFalse(form.is_valid())

    def test_custom_recommendation_form_invalid_name_duplicate(self):
        form_data = {
            'name': self.name_valid_duplicate,
            'description': self.description_valid
        }
        form = CreateRecomendationCustomForm(data=form_data)
        form.get_request(self.request)

        self.assertFalse(form.is_valid())
class TestRequiredSuggestionCid(TestCase):

    def setUp(self):
        self.factory = RequestFactory()
        self.client = Client()
        self.view = CreateCopyPrescription()

        self.patient = Patient()
        self.patient.pk = 1
        self.patient.name = "Paciente de teste"
        self.patient.date_of_birth = "1991-10-21"
        self.patient.phone = "06199999999"
        self.patient.email = "*****@*****.**"
        self.patient.sex = "M"
        self.patient.id_document = "1000331"
        self.patient.CEP = "72850735"
        self.patient.UF = "DF"
        self.patient.city = "Brasília"
        self.patient.neighborhood = "Asa sul"
        self.patient.complement = "Bloco 2 QD 701"
        self.patient.save()

        self.health_professional = HealthProfessional()
        self.health_professional.pk = 1
        self.health_professional.crm = '12345'
        self.health_professional.crm_state = 'US'
        self.health_professional.save()

        self.medicine = Medicine()
        self.medicine.name = "Medicamento Teste"
        self.medicine.active_ingredient = "Teste Lab"
        self.medicine.save()

        self.manipulated_medicine = ManipulatedMedicine()
        self.manipulated_medicine.pk = 1
        self.manipulated_medicine.recipe_name = "teste"
        self.manipulated_medicine.physical_form = "asdadsafdf"
        self.manipulated_medicine.quantity = 12
        self.manipulated_medicine.measurement = "kg"
        self.manipulated_medicine.composition = "aosdjoaisjdoiajsdoij"
        self.manipulated_medicine.health_professional = self.health_professional
        self.manipulated_medicine.save()

        self.disease = Disease()
        self.disease.pk = 1
        self.disease.id_cid_10 = "A01"
        self.disease.description = "A random disease"
        self.disease.save()

        self.health_professional_2 = HealthProfessional.objects.create_user(email='*****@*****.**',
                                                                            password='******')

        self.nopatientprescription = NoPatientPrescription()
        self.nopatientprescription.patient = self.patient
        self.nopatientprescription.cid = self.disease
        self.nopatientprescription.health_professional = self.health_professional_2
        self.nopatientprescription.patient = "Junior Marques"
        self.nopatientprescription.save()

        self.patientprescription = PatientPrescription()
        self.patientprescription.patient = self.patient
        self.patientprescription.cid = self.disease
        self.patientprescription.health_professional = self.health_professional_2
        self.patientprescription.patient = self.patient
        self.patientprescription.save()

        self.posology = "Medicamento de Teste"
        self.quantity = 1
        self.via = constants.VIA_CHOICES[0][0]

        self.has_medicine = PrescriptionHasMedicine()
        self.has_medicine.prescription_medicine = self.nopatientprescription.prescription_ptr
        self.has_medicine.medicine = self.medicine
        self.has_medicine.posology = self.posology
        self.has_medicine.via = self.via
        self.has_medicine.quantity = self.quantity
        self.has_medicine.save()

        self.has_manipulated = PrescriptionHasManipulatedMedicine()
        self.has_manipulated.prescription_medicine = self.nopatientprescription.prescription_ptr
        self.has_manipulated.manipulated_medicine = self.manipulated_medicine
        self.has_manipulated.posology = self.posology
        self.has_manipulated.via = self.via
        self.has_manipulated.quantity = self.quantity
        self.has_manipulated.save()

        self.manipulated_medicine = ManipulatedMedicine()
        self.manipulated_medicine.pk = 1
        self.manipulated_medicine.recipe_name = "teste"
        self.manipulated_medicine.physical_form = "asdadsafdf"
        self.manipulated_medicine.quantity = 12
        self.manipulated_medicine.measurement = "kg"
        self.manipulated_medicine.composition = "aosdjoaisjdoiajsdoij"
        self.manipulated_medicine.health_professional = self.health_professional
        self.manipulated_medicine.save()

        self.hasmanipulated_medicine = PrescriptionHasManipulatedMedicine()
        self.hasmanipulated_medicine.manipulated_medicine = self.manipulated_medicine
        self.hasmanipulated_medicine.posology = "asd"
        self.hasmanipulated_medicine.quantity = 1
        self.hasmanipulated_medicine.pk = 2
        self.hasmanipulated_medicine.via = 'Via Intravenosa'
        self.hasmanipulated_medicine.prescription_medicine = self.nopatientprescription.prescription_ptr
        self.hasmanipulated_medicine.save()

        self.hasmanipulated_medicine = PrescriptionHasManipulatedMedicine()
        self.hasmanipulated_medicine.manipulated_medicine = self.manipulated_medicine
        self.hasmanipulated_medicine.posology = "asd"
        self.hasmanipulated_medicine.quantity = 1
        self.hasmanipulated_medicine.pk = 12
        self.hasmanipulated_medicine.via = 'Via Intravenosa'
        self.hasmanipulated_medicine.prescription_medicine = self.nopatientprescription.prescription_ptr
        self.hasmanipulated_medicine.save()

        self.recommendation = NewRecommendation()
        self.recommendation.recommendation_description = "recomendacao de teste"
        self.recommendation.save()

        self.prescription_has_recommendation = PrescriptionNewRecommendation()
        self.prescription_has_recommendation.prescription = self.nopatientprescription.prescription_ptr
        self.prescription_has_recommendation.recommendation = self.recommendation
        self.prescription_has_recommendation.save()

        self.prescription_has_recommendation = PrescriptionNewRecommendation()
        self.prescription_has_recommendation.prescription = self.nopatientprescription.prescription_ptr
        self.prescription_has_recommendation.recommendation = self.recommendation
        self.prescription_has_recommendation.save()

        self.medicine = Medicine()
        self.medicine.name = "asdoajsdoiasj"
        self.medicine.active_ingredient = "dsofaksdofk"
        self.medicine.laboratory = "dofijasoifjjf"
        self.medicine.description = "oiajdoaisjddj"
        self.medicine.save()

        self.prescription_has_medicine = PrescriptionHasMedicine()
        self.prescription_has_medicine.medicine = self.medicine
        self.prescription_has_medicine.posology = "asd"
        self.prescription_has_medicine.quantity = 1
        self.prescription_has_medicine.pk = 2
        self.prescription_has_medicine.via = 'Via Intravenosa'
        self.prescription_has_medicine.prescription_medicine = self.nopatientprescription.prescription_ptr
        self.prescription_has_medicine.save()

        self.default_exam = DefaultExam()
        self.default_exam.id_tuss = 'oiafj'
        self.default_exam.save()

        self.custom_exam = CustomExam()
        self.custom_exam.health_professional_FK = self.health_professional
        self.custom_exam.save()

        self.prescription_default_exam = PrescriptionDefaultExam()
        self.prescription_default_exam.exam = self.default_exam
        self.prescription_default_exam.prescription = self.nopatientprescription.prescription_ptr
        self.prescription_default_exam.save()

        self.prescription_custom_exam = PrescriptionCustomExam()
        self.prescription_custom_exam.exam = self.custom_exam
        self.prescription_custom_exam.prescription = self.nopatientprescription.prescription_ptr
        self.prescription_custom_exam.save()

    def test_prescription_request_no_disease(self):
        request = self.factory.post(
            '/ajax/suggestions_cid/',
            {'id': self.disease.pk},
            HTTP_X_REQUESTED_WITH='XMLHttpRequest'
            )
        request.user = self.health_professional_2
        response = SuggestionsCid.as_view()(request)
        print(response)
        self.assertEquals(response.status_code, 200)

    def test_prescription_request_autocomplete_cid_return_one_disease(self):
        request = self.factory.post('/ajax/suggestions_cid/', {'id': self.disease.pk})
        request.user = self.health_professional
        response = SuggestionsCid.as_view()(request)
        self.assertNotEquals(response, HttpResponse)
示例#14
0
class TestCreatePrescription(TestCase):
    def setUp(self):
        self.factory = RequestFactory()
        self.client = Client()
        self.view = CreatePrescriptionView()

        self.patient = Patient()
        self.patient.pk = 1
        self.patient.name = "Paciente de teste"
        self.patient.date_of_birth = "1991-10-21"
        self.patient.phone = "06199999999"
        self.patient.email = "*****@*****.**"
        self.patient.sex = "M"
        self.patient.id_document = "1000331"
        self.patient.CEP = "72850735"
        self.patient.UF = "DF"
        self.patient.city = "Brasília"
        self.patient.neighborhood = "Asa sul"
        self.patient.complement = "Bloco 2 QD 701"
        self.patient.is_active = True
        self.patient.save()

        self.health_professional = HealthProfessional()
        self.health_professional.pk = 1
        self.health_professional.crm = '12345'
        self.health_professional.crm_state = 'US'
        self.health_professional.is_active = True
        self.health_professional.save()

        self.manipulated_medicine = ManipulatedMedicine()
        self.manipulated_medicine.pk = 1
        self.manipulated_medicine.recipe_name = "teste"
        self.manipulated_medicine.physical_form = "asdadsafdf"
        self.manipulated_medicine.quantity = 12
        self.manipulated_medicine.measurement = "kg"
        self.manipulated_medicine.composition = "aosdjoaisjdoiajsdoij"
        self.manipulated_medicine.health_professional = self.health_professional
        self.manipulated_medicine.save()

        self.disease = Disease()
        self.disease.pk = 1
        self.disease.id_cid_10 = "A01"
        self.disease.description = "A random disease"
        self.disease.save()

        self.health_professional = HealthProfessional.objects.create_user(
            email='*****@*****.**', password='******')

        self.relation = AssociatedHealthProfessionalAndPatient()
        self.relation.associated_health_professional = self.health_professional
        self.relation.associated_patient = self.patient
        self.relation.is_active = True
        self.relation.save()

        self.not_patient = Patient()
        self.not_patient.email = "*****@*****.**"
        self.not_patient.is_active = True
        self.not_patient.save()

        self.patient_not_actived = Patient()
        self.patient_not_actived.email = "*****@*****.**"
        self.patient_not_actived.is_active = False
        self.patient_not_actived.save()

        self.invitation = SendInvitationProfile()
        self.invitation.patient = self.patient_not_actived
        self.invitation.save()

    def test_prescription_get(self):
        request = self.factory.get('/prescription/create_modal/')
        response = self.view.get(request)
        self.assertEqual(response.status_code, 200)

    @patch('prescription.models.NoPatientPrescription.save',
           MagicMock(name="save"))
    @patch('prescription.models.PrescriptionNewRecommendation.save',
           MagicMock(name="save"))
    def test_prescription_post_with_health_professional(self):
        context = {
            'form_medicine-TOTAL_FORMS': 1,
            'form_medicine-INITIAL_FORMS': 0,
            'form_recommendation-TOTAL_FORMS': 1,
            'form_recommendation-INITIAL_FORMS': 0,
            'form_exam-TOTAL_FORMS': 1,
            'form_exam-INITIAL_FORMS': 0,
            'patient': "JOAO",
            'patient_id': 0,
            'cid_id': 1,
            'medicine_type': 'manipulated_medicine',
            'medicine_id': 1,
            'quantity': 10,
            'posology': 'nao fazer nada',
            'via': 'Via oral',
        }

        request = self.factory.post('/prescription/create_modal/', context)
        request.user = self.health_professional

        # Get the response
        response = CreatePrescriptionView.as_view()(request)
        self.assertEqual(response.status_code, 200)

        # # Check save was called
        self.assertTrue(NoPatientPrescription.save.called)
        self.assertEqual(NoPatientPrescription.save.call_count, 1)

    @patch('prescription.models.PatientPrescription.save',
           MagicMock(name="save"))
    @patch('prescription.models.PrescriptionNewRecommendation.save',
           MagicMock(name="save"))
    def test_prescription_post_with_health_professional_patient(self):
        context = {
            'form_medicine-TOTAL_FORMS': 1,
            'form_medicine-INITIAL_FORMS': 0,
            'form_recommendation-TOTAL_FORMS': 1,
            'form_recommendation-INITIAL_FORMS': 0,
            'form_exam-TOTAL_FORMS': 1,
            'form_exam-INITIAL_FORMS': 0,
            'patient': "JOAO",
            'patient_id': 1,
            'email': self.patient.email,
            'cid_id': 1,
            'medicine_type': 'manipulated_medicine',
            'medicine_id': 1,
            'quantity': 10,
            'posology': 'nao fazer nada',
            'via': 'Via oral',
        }

        request = self.factory.post('/prescription/create_modal/', context)
        request.user = self.health_professional

        # Get the response
        response = CreatePrescriptionView.as_view()(request)
        self.assertEqual(response.status_code, 200)

        # # Check save was called
        self.assertTrue(PatientPrescription.save.called)
        self.assertEqual(PatientPrescription.save.call_count, 1)

    @patch('prescription.models.PatientPrescription.save',
           MagicMock(name="save"))
    @patch('prescription.models.PrescriptionNewRecommendation.save',
           MagicMock(name="save"))
    def test_prescription_post_with_patient_not_linked(self):
        context = {
            'form_medicine-TOTAL_FORMS': 1,
            'form_medicine-INITIAL_FORMS': 0,
            'form_recommendation-TOTAL_FORMS': 1,
            'form_recommendation-INITIAL_FORMS': 0,
            'form_exam-TOTAL_FORMS': 1,
            'form_exam-INITIAL_FORMS': 0,
            'patient': "JOAO",
            'email': self.not_patient.email,
            'cid_id': 1,
            'medicine_type': 'manipulated_medicine',
            'medicine_id': 1,
            'quantity': 10,
            'posology': 'nao fazer nada',
            'via': 'Via oral',
        }

        request = self.factory.post('/prescription/create_modal/', context)
        request.user = self.health_professional

        # Get the response
        response = CreatePrescriptionView.as_view()(request)
        self.assertEqual(response.status_code, 200)

        # Checking the creation of link between users.
        link = AssociatedHealthProfessionalAndPatient.objects.filter(
            associated_health_professional=self.health_professional,
            associated_patient=self.not_patient)
        self.assertTrue(link.exists())
        self.assertTrue(link.first().is_active)

        # # Check save was called
        self.assertTrue(PatientPrescription.save.called)
        self.assertEqual(PatientPrescription.save.call_count, 1)

    @patch('prescription.models.PatientPrescription.save',
           MagicMock(name="save"))
    @patch('prescription.models.PrescriptionNewRecommendation.save',
           MagicMock(name="save"))
    def test_prescription_post_with_patient_doesnt_exist(self):
        context = {
            'form_medicine-TOTAL_FORMS': 1,
            'form_medicine-INITIAL_FORMS': 0,
            'form_recommendation-TOTAL_FORMS': 1,
            'form_recommendation-INITIAL_FORMS': 0,
            'form_exam-TOTAL_FORMS': 1,
            'form_exam-INITIAL_FORMS': 0,
            'patient': "JOAO",
            'email': "*****@*****.**",
            'cid_id': 1,
            'medicine_type': 'manipulated_medicine',
            'medicine_id': 1,
            'quantity': 10,
            'posology': 'nao fazer nada',
            'via': 'Via oral',
        }

        request = self.factory.post('/prescription/create_modal/', context)
        request.user = self.health_professional

        # Get the response
        response = CreatePrescriptionView.as_view()(request)
        self.assertEqual(response.status_code, 200)

        # Checking the creation of patient not existence.
        patient = Patient.objects.filter(email="*****@*****.**")
        self.assertTrue(patient.exists())

        # Checking the creation of link between users.
        link = AssociatedHealthProfessionalAndPatient.objects.filter(
            associated_health_professional=self.health_professional,
            associated_patient=patient.first())
        self.assertTrue(link.exists())
        self.assertFalse(link.first().is_active)

        # Check save was called
        self.assertTrue(PatientPrescription.save.called)
        self.assertEqual(PatientPrescription.save.call_count, 1)

    @patch('prescription.models.PatientPrescription.save',
           MagicMock(name="save"))
    @patch('prescription.models.PrescriptionNewRecommendation.save',
           MagicMock(name="save"))
    def test_prescription_post_with_patient_not_actived(self):
        context = {
            'form_medicine-TOTAL_FORMS': 1,
            'form_medicine-INITIAL_FORMS': 0,
            'form_recommendation-TOTAL_FORMS': 1,
            'form_recommendation-INITIAL_FORMS': 0,
            'form_exam-TOTAL_FORMS': 1,
            'form_exam-INITIAL_FORMS': 0,
            'patient': "JOAO",
            'email': self.patient_not_actived.email,
            'cid_id': 1,
            'medicine_type': 'manipulated_medicine',
            'medicine_id': 1,
            'quantity': 10,
            'posology': 'nao fazer nada',
            'via': 'Via oral',
        }

        request = self.factory.post('/prescription/create_modal/', context)
        request.user = self.health_professional

        # Get the response
        response = CreatePrescriptionView.as_view()(request)
        self.assertEqual(response.status_code, 200)

        # # Check save was called
        self.assertTrue(PatientPrescription.save.called)
        self.assertEqual(PatientPrescription.save.call_count, 1)

    def test_prescription_get_with_health_professional(self):

        request = self.factory.post('/prescription/create_modal/')
        request.user = self.health_professional

        # Get the response
        response = CreatePrescriptionView.as_view()(request)
        self.assertEqual(response.status_code, 200)
示例#15
0
class TestPrintPrescriptionPatient(TestCase):
    def setUp(self):
        self.factory = RequestFactory()
        self.client = Client()
        self.view = PrintPrescriptionPatient.generate_pdf

        self.patient = Patient()
        self.patient.pk = 1
        self.patient.name = "Paciente de teste"
        self.patient.date_of_birth = "1991-10-21"
        self.patient.phone = "06199999999"
        self.patient.email = "*****@*****.**"
        self.patient.sex = "M"
        self.patient.id_document = "1000331"
        self.patient.CEP = "72850735"
        self.patient.UF = "DF"
        self.patient.city = "Brasília"
        self.patient.neighborhood = "Asa sul"
        self.patient.complement = "Bloco 2 QD 701"
        self.patient.save()

        self.health_professional = HealthProfessional()
        self.health_professional.pk = 1
        self.health_professional.crm = '12345'
        self.health_professional.crm_state = 'US'
        self.health_professional.specialty_first = 'Nutricao'
        self.health_professional.specialty_second = 'Pediatria'
        self.health_professional.email = '*****@*****.**'
        self.health_professional.password = '******'
        self.health_professional.save()

        self.health_professional_no_specialty_second = HealthProfessional()
        self.health_professional_no_specialty_second.pk = 2
        self.health_professional_no_specialty_second.crm = '11111'
        self.health_professional_no_specialty_second.crm_state = 'US'
        self.health_professional_no_specialty_second.specialty_first = 'Nutricao'
        self.health_professional_no_specialty_second.specialty_second = 'Nao Possui'
        self.health_professional_no_specialty_second.email = '*****@*****.**'
        self.health_professional_no_specialty_second.password = '******'
        self.health_professional_no_specialty_second.save()

        self.disease = Disease()
        self.disease.pk = 1
        self.disease.id_cid_10 = "A01"
        self.disease.description = "A random disease"
        self.disease.save()

        self.prescription = NoPatientPrescription()
        self.prescription.pk = 1
        self.prescription.health_professional = self.health_professional
        self.prescription.cid = self.disease
        self.prescription.patient = "Algum nome"
        self.prescription.save()

        self.prescription_2 = NoPatientPrescription()
        self.prescription_2.pk = 2
        self.prescription_2.health_professional = self.health_professional
        self.prescription_2.cid = self.disease
        self.prescription_2.patient = "Algum nome"
        self.prescription_2.save()

        self.prescription_3 = PatientPrescription()
        self.prescription_3.pk = 3
        self.prescription_3.health_professional = self.health_professional
        self.prescription_3.cid = self.disease
        self.prescription_3.patient = self.patient
        self.prescription_3.save()

        self.prescription_4 = PatientPrescription()
        self.prescription_4.pk = 4
        self.prescription_4.health_professional = self.health_professional
        self.prescription_4.cid = self.disease
        self.prescription_4.patient = self.patient
        self.prescription_4.save()

        self.prescription_5 = PatientPrescription()
        self.prescription_5.pk = 5
        self.prescription_5.health_professional = self.health_professional
        self.prescription_5.cid = self.disease
        self.prescription_5.patient = self.patient
        self.prescription_5.save()

        self.prescription_6 = PatientPrescription()
        self.prescription_6.pk = 6
        self.prescription_6.health_professional = self.health_professional_no_specialty_second
        self.prescription_6.cid = self.disease
        self.prescription_6.patient = self.patient
        self.prescription_6.save()

        self.manipulated_medicine = ManipulatedMedicine()
        self.manipulated_medicine.pk = 1
        self.manipulated_medicine.recipe_name = "teste"
        self.manipulated_medicine.physical_form = "asdadsafdf"
        self.manipulated_medicine.quantity = 12
        self.manipulated_medicine.measurement = "kg"
        self.manipulated_medicine.composition = "aosdjoaisjdoiajsdoij"
        self.manipulated_medicine.health_professional = self.health_professional
        self.manipulated_medicine.save()

        self.manipulated_medicine_2 = ManipulatedMedicine()
        self.manipulated_medicine_2.pk = 2
        self.manipulated_medicine_2.recipe_name = "teste"
        self.manipulated_medicine_2.physical_form = "asdadsafdf"
        self.manipulated_medicine_2.quantity = 12
        self.manipulated_medicine_2.measurement = "kg"
        self.manipulated_medicine_2.composition = "aosdjoaisjdoiajsdoij"
        self.manipulated_medicine_2.health_professional = self.health_professional
        self.manipulated_medicine_2.save()

        self.hasmanipulated_medicine = PrescriptionHasManipulatedMedicine()
        self.hasmanipulated_medicine.manipulated_medicine = self.manipulated_medicine
        self.hasmanipulated_medicine.posology = "asd"
        self.hasmanipulated_medicine.quantity = 1
        self.hasmanipulated_medicine.pk = 2
        self.hasmanipulated_medicine.via = 'Via Intravenosa'
        self.hasmanipulated_medicine.prescription_medicine = self.prescription
        self.hasmanipulated_medicine.save()

        self.hasmanipulated_medicine = PrescriptionHasManipulatedMedicine()
        self.hasmanipulated_medicine.manipulated_medicine = self.manipulated_medicine_2
        self.hasmanipulated_medicine.posology = "asd"
        self.hasmanipulated_medicine.quantity = 1
        self.hasmanipulated_medicine.pk = 12
        self.hasmanipulated_medicine.via = 'Via Intravenosa'
        self.hasmanipulated_medicine.prescription_medicine = self.prescription
        self.hasmanipulated_medicine.save()

        self.hasmanipulated_medicine = PrescriptionHasManipulatedMedicine()
        self.hasmanipulated_medicine.manipulated_medicine = self.manipulated_medicine
        self.hasmanipulated_medicine.posology = "asd"
        self.hasmanipulated_medicine.quantity = 1
        self.hasmanipulated_medicine.pk = 4
        self.hasmanipulated_medicine.via = 'Via Intravenosa'
        self.hasmanipulated_medicine.prescription_medicine = self.prescription_2
        self.hasmanipulated_medicine.save()

        self.recommendation = NewRecommendation()
        self.recommendation.recommendation_description = "recomendacao de teste"
        self.recommendation.save()

        self.prescription_has_recommendation = PrescriptionNewRecommendation()
        self.prescription_has_recommendation.prescription = self.prescription
        self.prescription_has_recommendation.recommendation = self.recommendation
        self.prescription_has_recommendation.save()

        self.prescription_has_recommendation = PrescriptionNewRecommendation()
        self.prescription_has_recommendation.prescription = self.prescription_3
        self.prescription_has_recommendation.recommendation = self.recommendation
        self.prescription_has_recommendation.save()

        self.medicine = Medicine()
        self.medicine.name = "asdoajsdoiasj"
        self.medicine.active_ingredient = "dsofaksdofk"
        self.medicine.laboratory = "dofijasoifjjf"
        self.medicine.description = "oiajdoaisjddj"
        self.medicine.save()

        self.medicine_2 = Medicine()
        self.medicine_2.name = "asdoajsdoiasj"
        self.medicine_2.active_ingredient = "dsofaksdofk"
        self.medicine_2.laboratory = "dofijasoifjjf"
        self.medicine_2.description = "oiajdoaisjddj"
        self.medicine_2.save()

        self.prescription_has_medicine = PrescriptionHasMedicine()
        self.prescription_has_medicine.medicine = self.medicine
        self.prescription_has_medicine.posology = "asd"
        self.prescription_has_medicine.quantity = 1
        self.prescription_has_medicine.pk = 2
        self.prescription_has_medicine.via = 'Via Intravenosa'
        self.prescription_has_medicine.prescription_medicine = self.prescription
        self.prescription_has_medicine.save()

        self.prescription_has_medicine = PrescriptionHasMedicine()
        self.prescription_has_medicine.medicine = self.medicine_2
        self.prescription_has_medicine.posology = "asd"
        self.prescription_has_medicine.quantity = 1
        self.prescription_has_medicine.pk = 21
        self.prescription_has_medicine.via = 'Via Intravenosa'
        self.prescription_has_medicine.prescription_medicine = self.prescription
        self.prescription_has_medicine.save()

        self.default_exam = DefaultExam()
        self.default_exam.id_tuss = 'oiafj'
        self.default_exam.save()

        self.custom_exam = CustomExam()
        self.custom_exam.health_professional_FK = self.health_professional
        self.custom_exam.save()

        self.prescription_default_exam = PrescriptionDefaultExam()
        self.prescription_default_exam.exam = self.default_exam
        self.prescription_default_exam.prescription = self.prescription
        self.prescription_default_exam.save()

        self.prescription_default_exam = PrescriptionDefaultExam()
        self.prescription_default_exam.exam = self.default_exam
        self.prescription_default_exam.prescription = self.prescription_4
        self.prescription_default_exam.save()

        self.prescription_custom_exam = PrescriptionCustomExam()
        self.prescription_custom_exam.exam = self.custom_exam
        self.prescription_custom_exam.prescription = self.prescription
        self.prescription_custom_exam.save()

    def test_print_prescription_get_no_second_speciality(self):
        request = self.factory.get('/prescription/print_prescription/1/3')
        response = self.view(request, pk=6)
        self.assertEqual(response.status_code, 200)

    def test_print_prescription(self):
        request = self.factory.get('/prescription/print_prescription/1/3')
        response = self.view(request, pk=1)
        self.assertEqual(response.status_code, 200)

    def test_print_prescription_get_invalid_medicine(self):
        request = self.factory.get('/prescription/print_prescription/2')
        response = self.view(request, pk=2)
        self.assertEqual(response.status_code, 200)

    def test_print_prescription_get_invalid_recommendation(self):
        request = self.factory.get('/prescription/print_prescription/3')
        response = self.view(request, pk=3)
        self.assertEqual(response.status_code, 200)

    def test_print_prescription_get_invalid_exam(self):
        request = self.factory.get('/prescription/print_prescription/4')
        response = self.view(request, pk=4)
        self.assertEqual(response.status_code, 200)

    def test_print_prescription_get_invalid(self):
        request = self.factory.get('/prescription/print_prescription/3')
        response = self.view(request, pk=3)
        self.assertEqual(response.status_code, 200)
class TestComposeView(TestCase):
    """
    Testing methods of Class ComposeView.
    """
    def setUp(self):

        # Creating user in database.
        self.user = HealthProfessional()
        self.user.email = "*****@*****.**"
        self.user.save()

        self.patient = Patient()
        self.patient.email = "*****@*****.**"
        self.patient.save()

        self.link = AssociatedHealthProfessionalAndPatient()
        self.link.associated_health_professional = self.user
        self.link.associated_patient = self.patient
        self.link.is_active = True
        self.link.save()

        self.not_linked_patient = Patient()
        self.not_linked_patient.email = "*****@*****.**"
        self.not_linked_patient.save()

        self.subject = "a"
        self.text = "a"

        self.factory = RequestFactory()
        self.my_view = ComposeView()
        self.my_view_class = ComposeView
        self.client = Client()

    def test_chat_get(self):
        request = self.factory.get('/chat/compose/')
        request.user = self.user
        response = self.my_view.get(request)
        self.assertEqual(response.status_code, 200)

    def test_chat_post(self):
        request = self.factory.post('chat/compose',
                                    {'text': self.text,
                                     'subject': self.subject,
                                     'user_from': self.user.email,
                                     'user_to': self.patient.email
                                     })
        request.user = self.user

        response = self.my_view_class.as_view()(request)
        self.assertEqual(response.status_code, 302)

    def test_chat_post_invalid_user_to_health_professional(self):
        request = self.factory.post('chat/compose',
                                    {'text': self.text,
                                     'subject': self.subject,
                                     'user_from': self.user.email,
                                     'user_to': self.user.email
                                     })
        request.user = self.user

        response = self.my_view_class.as_view()(request)
        self.assertEqual(response.status_code, 200)

    def test_chat_post_invalid_user_to_not_linked(self):
        request = self.factory.post('chat/compose',
                                    {'text': 'a'*10000,
                                     'subject': 'test suject',
                                     'user_from': self.user.email,
                                     'user_to': self.not_linked_patient.email
                                     })
        request.user = self.user

        response = self.my_view_class.as_view()(request)
        self.assertEqual(response.status_code, 200)
class TestCreateMessageForm(TestCase):
    def setUp(self):
        self.health_professional = HealthProfessional()
        self.health_professional.email = "*****@*****.**"
        self.health_professional.pk = 0
        self.health_professional.save()

        self.patient = Patient()
        self.patient.email = "*****@*****.**"
        self.patient.save()

        self.link = AssociatedHealthProfessionalAndPatient()
        self.link.associated_health_professional = self.health_professional
        self.link.associated_patient = self.patient
        self.link.is_active = True
        self.link.save()

        self.not_linked_patient = Patient.objects.create(
            email="*****@*****.**")

        self.subject = "a"
        self.text = "a"
        self.subject_max = 'a' * 1000
        self.text_max = 'a' * 1000
        self.email_invalid = 'a2d'

    def test_valid(self):
        upload_file = open('public/image_profile/user.png', 'rb')
        file_dict = {
            'file': SimpleUploadedFile(upload_file.name, upload_file.read())
        }
        form_data = {
            'subject': self.subject,
            'text': self.text,
            'files': file_dict,
            'user_to': self.patient.email,
        }
        form = CreateMessage(data=form_data)
        self.assertTrue(form.is_valid())

    def test_chat_invalid_subject(self):
        form_data = {
            'subject': self.subject_max,
            'text': self.text,
            'user_to': self.patient.email,
            'pk': self.health_professional.pk
        }
        form = CreateMessage(data=form_data)
        self.assertFalse(form.is_valid())

    def test_chat_invalid_text(self):
        form_data = {
            'subject': self.subject,
            'text': self.text_max,
            'user_to': self.patient.email,
        }
        form = CreateMessage(data=form_data)
        self.assertFalse(form.is_valid())

    def test_chat_invalid_email(self):
        form_data = {
            'subject': self.subject,
            'text': self.text,
            'user_to': self.email_invalid,
        }
        form = CreateMessage(data=form_data)
        self.assertFalse(form.is_valid())

    def test_invalid_email_health_professional(self):
        form_data = {
            'subject': self.subject,
            'text': self.text,
            'user_to': self.health_professional.email,
        }
        form = CreateMessage(data=form_data)
        self.assertFalse(form.is_valid())

    def test_link_does_not_exists(self):
        form_data = {
            'subject': self.subject,
            'text': self.text,
            'user_to': self.not_linked_patient.email,
        }
        form = CreateMessage(data=form_data)
        self.assertFalse(form.is_valid())

    def test_chat_invalid_subject_None(self):
        form_data = {
            'subject': None,
            'text': self.text,
            'user_to': self.email_invalid
        }
        form = CreateMessage(data=form_data)
        self.assertFalse(form.is_valid())

    def test_chat_invalid_text_None(self):
        form_data = {
            'subject': self.subject,
            'text': None,
            'user_to': self.email_invalid
        }
        form = CreateMessage(data=form_data)
        self.assertFalse(form.is_valid())