def setUp(self): super(TestEnrollmentMixin, self).setUp() self.maternal_eligibility = MaternalEligibilityFactory() self.maternal_consent = MaternalConsentFactory( registered_subject=self.maternal_eligibility.registered_subject) self.registered_subject = self.maternal_consent.registered_subject self.specimen_consent = SpecimenConsentFactory( registered_subject=self.registered_subject) self.data = { 'registered_subject': self.registered_subject.id, 'report_datetime': timezone.now(), 'is_diabetic': NO, 'on_tb_tx': NO, 'will_breastfeed': NO, 'will_remain_onstudy': NO, 'week32_test': NO, 'week32_result': '', 'current_hiv_status': POS, 'evidence_hiv_status': NO, 'valid_regimen': NO, 'valid_regimen_duration': NOT_APPLICABLE, 'rapid_test_done': NO, 'rapid_test_date': '', 'rapid_test_result': '', }
def test_serialize_deserialize(self): """Confirms all models have a get_by_natural_key manager method.""" maternal_eligibility = MaternalEligibilityFactory() maternal_consent = MaternalConsentFactory( registered_subject=maternal_eligibility.registered_subject) specimen_consent = SpecimenConsentFactory( registered_subject=maternal_consent.registered_subject) antenatal_enrollment = AntenatalEnrollmentFactory( registered_subject=specimen_consent.registered_subject, current_hiv_status=POS, evidence_hiv_status=YES, rapid_test_done=NO) appointment = Appointment.objects.get( registered_subject=antenatal_enrollment.registered_subject, visit_definition__code='1000M') maternal_visit = MaternalVisitFactory(appointment=appointment) maternal_locator = MaternalLocatorFactory( maternal_visit=maternal_visit, registered_subject=antenatal_enrollment.registered_subject, ) maternal_demographics = MaternalDemographics.objects.create( maternal_visit=maternal_visit, report_datetime=timezone.now(), marital_status='Single', ethnicity='Black African', highest_education='Tertiary', current_occupation='Student', provides_money='Mother', money_earned='P1001-5000 per month / P212 - 1157 per week', own_phone=YES, house_electrified=YES, house_fridge=YES, cooking_method='Gas or electric stove', toilet_facility='Indoor toilet', house_people_number=1, house_type='Formal: Tin-roofed, concrete walls') instances = [] instances.append(maternal_eligibility) instances.append(maternal_consent) instances.append(specimen_consent) instances.append(antenatal_enrollment) instances.append(maternal_visit) instances.append(maternal_locator) instances.append(maternal_demographics) for obj in instances: natural_key = obj.natural_key() get_obj = obj.__class__.objects.get_by_natural_key(*natural_key) self.assertEqual(obj.pk, get_obj.pk) for obj in instances: outgoing_transaction = SerializeToTransaction().serialize( obj.__class__, obj, False, True, 'default') for transaction in serializers.deserialize( "json", FieldCryptor('aes', 'local').decrypt(outgoing_transaction.tx)): self.assertEqual(transaction.object.pk, obj.pk)
def maternal_instances(self): instances = [] maternal_eligibility = MaternalEligibilityFactory() instances.append(maternal_eligibility) maternal_consent = MaternalConsentFactory( registered_subject=maternal_eligibility.registered_subject) instances.append(maternal_consent) specimen_consent = SpecimenConsentFactory( registered_subject=maternal_consent.registered_subject) instances.append(specimen_consent) antenatal_enrollment = AntenatalEnrollmentFactory( registered_subject=specimen_consent.registered_subject, current_hiv_status=POS, evidence_hiv_status=YES, rapid_test_done=NO) instances.append(antenatal_enrollment) post_natal_enrollment = PostnatalEnrollmentFactory( registered_subject=specimen_consent.registered_subject, ) instances.append(post_natal_enrollment) appointment_1000 = Appointment.objects.get( registered_subject=antenatal_enrollment.registered_subject, visit_definition__code='1000M') instances.append(appointment_1000) maternal_visit_1000 = MaternalVisitFactory( appointment=appointment_1000) instances.append(maternal_visit_1000) maternal_locator = MaternalLocatorFactory( maternal_visit=maternal_visit_1000, registered_subject=antenatal_enrollment.registered_subject, ) instances.append(maternal_locator) maternal_demographics = MaternalDemographicsFactory( maternal_visit=maternal_visit_1000, ) instances.append(maternal_demographics) appointment_2000 = Appointment.objects.get( registered_subject=antenatal_enrollment.registered_subject, visit_definition__code='2000M') instances.append(appointment_2000) maternal_visit_2000 = MaternalVisitFactory( appointment=appointment_2000) instances.append(maternal_visit_2000) appointment_2010 = Appointment.objects.get( registered_subject=antenatal_enrollment.registered_subject, visit_definition__code='2010M') maternal_visit_2010 = MaternalVisitFactory( appointment=appointment_2010) instances.append(maternal_visit_2010) reproductive_health = ReproductiveHealthFactory( maternal_visit=maternal_visit_2010) instances.append(reproductive_health) maternal_arv_post = MaternalArvPostFactory( maternal_visit=maternal_visit_2010) instances.append(maternal_arv_post) maternal_arv_post_mod = MaternalArvPostModFactory( maternal_arv_post=maternal_arv_post) instances.append(maternal_arv_post_mod) maternal_arv_preg = MaternalArvPregFactory( maternal_visit=maternal_visit_2000) instances.append(maternal_arv_preg) maternal_arv = MaternalArvFactory(maternal_arv_preg=maternal_arv_preg) instances.append(maternal_arv) maternal_post_fu_med = MaternalPostFuMedFactory( maternal_visit=maternal_visit_2010) instances.append(maternal_post_fu_med) maternal_post_fu_items = MaternalPostFuMedItemsFactory( maternal_post_fu_med=maternal_post_fu_med) instances.append(maternal_post_fu_items) maternal_post_fu_dx = MaternalPostFuDxFactory( maternal_visit=maternal_visit_2010) instances.append(maternal_post_fu_dx) # maternal_post_fu_dxt = MaternalPostFuDxTFactory(maternal_post_fu_dx=maternal_post_fu_dx) # instances.append(maternal_post_fu_dxt) return instances