def test_formatted_number(self): """ Test that contacts get created for patients """ node = self.create_xml_patient({'Mobile_Number': '(33)-0001112222'}) payload = self.create_payload([node]) parse_patient(node, payload) patient = payload.patients.all()[0] self.assertEqual(patient.contact.phone, '+330001112222')
def test_reminder_time_not_required(self): """ Reminder_Time is not required """ node = self.create_xml_patient({'Reminder_Time': ''}) payload = self.create_payload([node]) parse_patient(node, payload) self.assertEqual(payload.patients.count(), 1) patient = payload.patients.all()[0] self.assertFalse(patient.reminder_time)
def test_reminder_time(self): """ Parse patient preferred reminder time """ node = self.create_xml_patient({'Reminder_Time': '12:00'}) payload = self.create_payload([node]) parse_patient(node, payload) self.assertEqual(payload.patients.count(), 1) patient = payload.patients.all()[0] self.assertEqual(patient.reminder_time, datetime.time(12, 0))
def test_patient_creation_without_country_code(self): """ Test patients missing country code are still inserted """ node = self.create_xml_patient({'Mobile_Number': '2223334444'}) payload = self.create_payload([node]) with patch_settings(COUNTRY_CODE='66', INTERNATIONAL_DIALLING_CODE='+'): parse_patient(node, payload) patients = reminders.Patient.objects.all() self.assertEqual(patients[0].mobile_number, '+662223334444')
def test_new_contact_association(self): """ Test that contacts get created for patients """ node = self.create_xml_patient({'Mobile_Number': '12223334444', 'Pin_Code': '4444'}) payload = self.create_payload([node]) parse_patient(node, payload) patient = payload.patients.all()[0] self.assertTrue(patient.contact is not None) self.assertEqual(patient.contact.phone, '+12223334444') self.assertEqual(patient.contact.pin, '4444')
def test_patient_creation(self): """ Test that patients get created properly """ node = self.create_xml_patient({'Mobile_Number': '12223334444'}) payload = self.create_payload([node]) parse_patient(node, payload) payload = reminders.PatientDataPayload.objects.all()[0] self.assertEqual(payload.status, 'success') patients = reminders.Patient.objects.all() self.assertEqual(patients.count(), 1) self.assertEqual(patients[0].mobile_number, '+12223334444') self.assertEqual(patients[0].raw_data.pk, payload.pk) self.assertTrue(patients[0].contact is not None)
def test_update_contact_association(self): """ Test that contacts get updated for patients """ patient1 = self.create_patient({'mobile_number': '12223334444'}) patient2 = self.create_patient() subject_number = patient1.subject_number node = self.create_xml_patient({'Subject_Number': subject_number, 'Mobile_Number': '43332221111'}) payload = self.create_payload([node]) parse_patient(node, payload) patient = payload.patients.all()[0] self.assertNotEqual(patient.pk, patient2.pk) self.assertEqual(patient.pk, patient1.pk) self.assertNotEqual(patient.contact.pk, patient2.contact.pk) self.assertEqual(patient.contact.pk, patient1.contact.pk) self.assertEqual(patient.mobile_number, '+43332221111') self.assertEqual(patient.contact.phone, '+43332221111')
def test_mobile_number_not_required(self): """ Mobile_Number shoudn't be required """ node = self.create_xml_patient({'Mobile_Number': ''}) payload = self.create_payload([node]) parse_patient(node, payload) self.assertEqual(payload.patients.count(), 1)
def test_next_visit_not_required(self): """ Next_Visit shoudn't be required """ node = self.create_xml_patient({'Next_Visit': ''}) payload = self.create_payload([node]) parse_patient(node, payload) self.assertEqual(payload.patients.count(), 1)