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 register_post(): data = request.form p = Patient(fname=data['fname'], lname=data['lname'], phone=data['phone'], email=data['email'], passwd=data['passwd']) id = p.manager().create() return str(id)
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)
def test_nurse_creation(self): user = User.objects.create(username="******", first_name = "test", last_name = "test") user.save() person = Patient(user = user, sex="1", birthdate=date.today(), address="30 allée des Chardons, Paris, France", profile_type = "PATIENT", information = "allergique au doliprane") person.save() user = User.objects.get(username = "******") self.assertEqual(user.person.patient.sex, "1") self.assertEqual(user.person.patient.birthdate, date.today()) self.assertEqual(user.person.patient.address, "30 allée des Chardons, Paris, France") self.assertEqual(user.person.patient.profile_type, "PATIENT") self.assertEqual(user.person.patient.information, "allergique au doliprane")
def patient_register(): form = PatientRegForm() if form.validate_on_submit(): hashed_password = generate_password_hash(form.password.data) patient = Patient('PATIENT', "ACTIVE", form.fname.data, form.lname.data, form.dob.data, form.gender.data, form.houseNo.data, form.street.data, form.city.data, form.state.data, form.zipcode.data, form.phone.data, form.email.data, hashed_password, form.pmry_opt.data) db.session.add(patient) db.session.commit() emergency_contact = EmergencyContact( patient.patient_id, form.emer_fname.data, form.emer_lname.data, form.emer_relationship.data, form.emer_phone.data, ) print(form.emer_lname.data) db.session.add(emergency_contact) db.session.commit() flash( f'Welcome, {form.fname.data}. Your forMED account has been registered. Please log in to continue.' ) return redirect(url_for('.login')) return render_template('user/patient_reg.html', form=form)
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)
def create_send_invitation_profile(email): salt = hashlib.sha1(str( random.random()).encode('utf-8')).hexdigest()[:5] activation_key = hashlib.sha1( str(salt + email).encode('utf-8')).hexdigest() key_expires = timezone.now() + datetime.timedelta(days=2) patient = Patient(email=email) patient.save() # Creating the temporary profile. new_profile = SendInvitationProfile(patient=patient, activation_key=activation_key, key_expires=key_expires) new_profile.save() return new_profile
def setUp(self): self.factory = RequestFactory() self.email = '*****@*****.**' self.salt = hashlib.sha1(str( random.random()).encode('utf-8')).hexdigest()[:5] self.activation_key = hashlib.sha1( str(self.salt + self.email).encode('utf-8')).hexdigest() self.key_expires = datetime.datetime.today() + datetime.timedelta(2) self.patient = Patient(email=self.email) self.patient.save() self.patient_profile = SendInvitationProfile.objects.create( activation_key=self.activation_key, patient=self.patient, key_expires=self.key_expires) self.email_invalid = '*****@*****.**' self.another_activation_key = hashlib.sha1( str(self.salt + self.email_invalid).encode('utf-8')).hexdigest()
class ConfirmAccountViewTest(TestCase): def setUp(self): self.factory = RequestFactory() self.email = '*****@*****.**' self.salt = hashlib.sha1(str( random.random()).encode('utf-8')).hexdigest()[:5] self.activation_key = hashlib.sha1( str(self.salt + self.email).encode('utf-8')).hexdigest() self.key_expires = datetime.datetime.today() + datetime.timedelta(2) self.patient = Patient(email=self.email) self.patient.save() self.patient_profile = SendInvitationProfile.objects.create( activation_key=self.activation_key, patient=self.patient, key_expires=self.key_expires) self.email_invalid = '*****@*****.**' self.another_activation_key = hashlib.sha1( str(self.salt + self.email_invalid).encode('utf-8')).hexdigest() def test_user_user_get(self): request = self.factory.get('user/confirm/(?P<activation_key>\w+)/') request.user = AnonymousUser() setattr(request, 'session', {}) setattr(request, '_messages', FallbackStorage(request)) response = ConfirmAccountView.activate_register_user( request, activation_key=self.activation_key) self.assertEqual(response.status_code, 302) def test_user_user_get_without_invitation(self): ''' this method tests when the user tryes to register a not invited patient. ''' request = self.factory.get('user/confirm/(?P<activation_key>\w+)/') request.user = AnonymousUser() setattr(request, 'session', {}) setattr(request, '_messages', FallbackStorage(request)) response = ConfirmAccountView.activate_register_user( request, activation_key=self.another_activation_key) self.assertEqual(response.status_code, 302)
def setUp(self): self.factory = RequestFactory() self.email = '*****@*****.**' self.salt = hashlib.sha1(str( random.random()).encode('utf-8')).hexdigest()[:5] self.activation_key = hashlib.sha1( str(self.salt + self.email).encode('utf-8')).hexdigest() self.key_expires = datetime.datetime.today() + datetime.timedelta(2) self.key_expired = datetime.datetime.today() - datetime.timedelta(2) self.patient = Patient(email=self.email) self.patient.save() self.patient_profile = SendInvitationProfile.objects.create( activation_key=self.activation_key, patient=self.patient, key_expires=self.key_expires) self.patient_profile.save() self.email_invalid = '*****@*****.**' self.another_activation_key = hashlib.sha1( str(self.salt + self.email_invalid).encode('utf-8')).hexdigest() self.name_valid = 'Teste Nome' self.name_invalid = 'Te' self.date_of_birth_valid = '10/12/1990' self.phone_valid = '(61)1234-56789' self.sex_valid = 'M' self.password_valid = '1234567' self.password_invalid = '1' self.CPF_document_valid = '61367541000' self.CPF_document_invalid = '11111111111' self.CEP_valid = 72850735 self.CEP_invalid = '7285073A' self.UF_valid = 'DF' self.UF_invalid = '' self.city_valid = 'Brasília' self.city_invalid = '' self.neighborhood_valid = 'Setor Leste' self.neighborhood_invalid = '' self.complement_valid = 'Rua 01, Quadra 10, Lote 15' self.complement_invalid = ''
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 register_patient(): form = PatientRegForm() #Disable and autofill fields form.pmry_opt.data = Physician.query.filter_by( id=session['id']).first().practice_name #TODO: Randomly generate a password... #PROBLEM: Cannot directly modify PasswordField data. # charString = string.ascii_letters+string.digits # randomPW = ''.join(random.sample(charString,10)) # form.password.data = randomPW # form.confirm.data = randomPW # print(randomPW) if form.validate_on_submit(): hashed_password = generate_password_hash(form.password.data) patient = Patient('PATIENT', "TEMP", form.fname.data, form.lname.data, form.dob.data, form.gender.data, form.houseNo.data, form.street.data, form.city.data, form.state.data, form.zipcode.data, form.phone.data, form.email.data, hashed_password, form.pmry_opt.data) db.session.add(patient) db.session.commit() emergency_contact = EmergencyContact( patient.patient_id, form.emer_fname.data, form.emer_lname.data, form.emer_relationship.data, form.emer_phone.data, ) db.session.add(emergency_contact) db.session.commit() #Send Email to the newly registered patient with the unhashed password #Redirect to Home Page and Flash a message saying account created. flash( 'Patient has been registered. An Email has been sent to the Patient with the account information' ) form.sendTempEmail(form.password.data) return redirect(url_for('physician_app.physician_home')) return render_template('physician/register_patient.html', form=form)
class RegisterPatientViewTest(TestCase): def setUp(self): self.factory = RequestFactory() self.email = '*****@*****.**' self.salt = hashlib.sha1(str( random.random()).encode('utf-8')).hexdigest()[:5] self.activation_key = hashlib.sha1( str(self.salt + self.email).encode('utf-8')).hexdigest() self.key_expires = datetime.datetime.today() + datetime.timedelta(2) self.key_expired = datetime.datetime.today() - datetime.timedelta(2) self.patient = Patient(email=self.email) self.patient.save() self.patient_profile = SendInvitationProfile.objects.create( activation_key=self.activation_key, patient=self.patient, key_expires=self.key_expires) self.patient_profile.save() self.email_invalid = '*****@*****.**' self.another_activation_key = hashlib.sha1( str(self.salt + self.email_invalid).encode('utf-8')).hexdigest() self.name_valid = 'Teste Nome' self.name_invalid = 'Te' self.date_of_birth_valid = '10/12/1990' self.phone_valid = '(61)1234-56789' self.sex_valid = 'M' self.password_valid = '1234567' self.password_invalid = '1' self.CPF_document_valid = '61367541000' self.CPF_document_invalid = '11111111111' self.CEP_valid = 72850735 self.CEP_invalid = '7285073A' self.UF_valid = 'DF' self.UF_invalid = '' self.city_valid = 'Brasília' self.city_invalid = '' self.neighborhood_valid = 'Setor Leste' self.neighborhood_invalid = '' self.complement_valid = 'Rua 01, Quadra 10, Lote 15' self.complement_invalid = '' def test_user_get(self): request = self.factory.get( 'user/register_patient/(?P<activation_key>\w+)/') request.user = AnonymousUser() response = RegisterPatientView.as_view()( request, activation_key=self.activation_key) self.assertEqual(response.status_code, 200) def test_user_post(self): ''' Test post method with a valid form. ''' # Create the request context = { 'name': self.name_valid, 'phone': self.phone_valid, 'email': self.email, 'password': self.password_valid, 'confirm_password': self.password_valid, 'sex': self.sex_valid, 'date_of_birth': self.date_of_birth_valid, 'CPF_document': self.CPF_document_valid, 'CEP': self.CEP_valid, 'UF': self.UF_valid, 'city': self.city_valid, 'neighborhood': self.neighborhood_valid, 'complement': self.complement_valid, } request = self.factory.post( '/user/register_patient/(?P<activation_key>\w+)/', context) setattr(request, 'session', {}) setattr(request, '_messages', FallbackStorage(request)) request.user = AnonymousUser() # Get the response response = RegisterPatientView.as_view()( request, activation_key=self.activation_key) self.assertEqual(response.status_code, 302) def test_user_post_invalid(self): ''' Test post method with a valid form. ''' # Create the request context = { 'name': self.name_invalid, 'phone': self.phone_valid, 'email': self.email, 'password': self.password_invalid, 'confirm_password': self.password_valid, 'sex': self.sex_valid, 'date_of_birth': self.date_of_birth_valid, 'CPF_document': self.CPF_document_valid, 'CEP': self.CEP_invalid, 'UF': self.UF_valid, 'city': self.city_valid, 'neighborhood': self.neighborhood_valid, 'complement': self.complement_invalid, } request = self.factory.post( '/user/register_patient/(?P<activation_key>\w+)/', context) request.user = AnonymousUser() setattr(request, 'session', {}) setattr(request, '_messages', FallbackStorage(request)) # Get the response response = RegisterPatientView.as_view()( request, activation_key=self.activation_key) self.assertEqual(response.status_code, 200) def test_user_post_invalid_patient_not_invited(self): ''' This method tests when you try to register a not invited patient. ''' # Create the request context = { 'name': self.name_invalid, 'phone': self.phone_valid, 'email': self.email, 'password': self.password_invalid, 'confirm_password': self.password_valid, 'sex': self.sex_valid, 'date_of_birth': self.date_of_birth_valid, 'CPF_document': self.CPF_document_valid, 'CEP': self.CEP_invalid, 'UF': self.UF_valid, 'city': self.city_valid, 'neighborhood': self.neighborhood_valid, 'complement': self.complement_invalid, } request = self.factory.post( '/user/register_patient/(?P<activation_key>\w+)/', context) request.user = AnonymousUser() setattr(request, 'session', {}) setattr(request, '_messages', FallbackStorage(request)) # Get the response response = RegisterPatientView.as_view()( request, activation_key=self.another_activation_key) self.assertEqual(response.status_code, 302) def test_user_post_invalid_patient_register_time_expired(self): ''' This method tests when you try to register after the expiration date of the invitation. ''' patient_profile = Patient.objects.get(email=self.email) SendInvitationProfile.objects.filter(patient=patient_profile).update( key_expires=self.key_expired) # Create the request context = { 'name': self.name_invalid, 'phone': self.phone_valid, 'email': self.email, 'password': self.password_invalid, 'confirm_password': self.password_valid, 'sex': self.sex_valid, 'date_of_birth': self.date_of_birth_valid, 'CPF_document': self.CPF_document_valid, 'CEP': self.CEP_invalid, 'UF': self.UF_valid, 'city': self.city_valid, 'neighborhood': self.neighborhood_valid, 'complement': self.complement_invalid, } request = self.factory.post( '/user/register_patient/(?P<activation_key>\w+)/', context) request.user = AnonymousUser() setattr(request, 'session', {}) setattr(request, '_messages', FallbackStorage(request)) # Get the response response = RegisterPatientView.as_view()( request, activation_key=self.activation_key) self.assertEqual(response.status_code, 302)
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 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 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 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())
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()
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)
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()