def setUp(self): StudySpecificFactory() StudySiteFactory() self.survey = SurveyFactory() self.plot = PlotFactory(community='test_community2', household_count=1, status='occupied') self.household_structure = HouseholdStructure.objects.get(household__plot=self.plot) self.household_member = HouseholdMemberFactory(household_structure=self.household_structure)
def setUp(self): from bhp066.apps.bcpp.app_configuration.classes import BcppAppConfiguration self.household_structure = None self.registered_subject = None self.representative_eligibility = None self.study_site = None self.intervention = None try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass BcppAppConfiguration().prepare() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() self.survey1 = Survey.objects.get(survey_name='BCPP Year 2') # see app_configuration plot = PlotFactory(community='digawana', household_count=1, status='residential_habitable') household = Household.objects.get(plot=plot) self.household_structure = HouseholdStructure.objects.get(household=household, survey=self.survey1) self.representative_eligibility = RepresentativeEligibilityFactory(household_structure=self.household_structure) self.study_site = StudySite.objects.get(site_code=site_mappers.get_current_mapper().map_code) self.intervention = site_mappers.get_registry(settings.CURRENT_COMMUNITY)().intervention
def setUp(self): site_mappers.autodiscover() try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass self.app_config = BcppAppConfiguration() self.app_config.prepare() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() site_rule_groups.autodiscover() self.mapper = site_mappers.get_current_mapper() # self.app_config.prep_survey_for_tests() self.community = 'test_community' plot = PlotFactory(community=self.community, household_count=1, status='residential_habitable') survey = Survey.objects.all().order_by('datetime_start')[0] self.study_site = StudySite.objects.get(site_code='01') self.household_structure = HouseholdStructure.objects.get(household__plot=plot, survey=survey) RepresentativeEligibilityFactory(household_structure=self.household_structure) self.male_dob = date.today() - relativedelta(years=25) self.male_age_in_years = 25 self.male_first_name = 'ERIK' self.male_initials = "EW" self.household_member_male_T0 = HouseholdMemberFactory( household_structure=self.household_structure, gender='M', age_in_years=self.male_age_in_years, first_name=self.male_first_name, initials=self.male_initials ) EnrollmentChecklistFactory( household_member=self.household_member_male_T0, gender='M', citizen='Yes', dob=self.male_dob, guardian='No', initials=self.household_member_male_T0.initials, part_time_resident='Yes' ) self.subject_consent_male = SubjectConsentFactory(household_member=self.household_member_male_T0, study_site=self.study_site, gender='M', dob=self.male_dob, first_name=self.male_first_name, initials=self.male_initials) self.registered_subject_male = RegisteredSubject.objects.get(subject_identifier=self.subject_consent_male.subject_identifier) self.appointment_male_T0 = Appointment.objects.get(registered_subject=self.registered_subject_male, visit_definition__code='T0') self.subject_visit_male_T0 = SubjectVisitFactory(appointment=self.appointment_male_T0, household_member=self.household_member_male_T0) SubjectLocatorFactory(registered_subject=self.subject_visit_male_T0.appointment.registered_subject, subject_visit=self.subject_visit_male_T0) self.household_member_T1 = None self.update_call_list_class = UpdateCallList()
def setUp(self): site_mappers.autodiscover() try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass bcpp_app_configuration.prepare() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() site_rule_groups.autodiscover() self.household_structure = None self.registered_subject = None self.representative_eligibility = None self.study_site = None self.intervention = None self.community = site_mappers.get_current_mapper().map_area self.study_site = StudySite.objects.get( site_code=site_mappers.get_current_mapper().map_code) self.site_code = self.study_site self.intervention = site_mappers.get_current_mapper().intervention self.survey1 = Survey.objects.get( survey_name='BCPP Year 1') # see app_configuration self.survey2 = Survey.objects.get( survey_name='BCPP Year 2') # see app_configuration plot = PlotFactory(community=self.community, household_count=1, status='residential_habitable') household = Household.objects.get(plot=plot) self.create_baseline(household) self.data = { 'household_member': self.household_member_male.id, 'report_datetime': datetime.today(), 'first_name': 'SETS', 'initials': 'SA', 'dob': datetime.today() + relativedelta(years=-20), 'guardian': NO, 'gender': MALE, 'has_identity': YES, 'identity': '317918515', 'identity_type': 'OMANG', 'citizen': YES, 'part_time_resident': YES, 'literacy': YES, 'guardian': YES, 'inability_to_participate': 'N/A', 'hiv_status': 'NEG', 'legal_marriage': 'N/A', 'marriage_certificate': 'N/A' }
def test_household_log_create(self): plot = PlotFactory(community=self.community, household_count=1, status='residential_habitable') household_structures = HouseholdStructure.objects.filter( household__plot=plot) household_logs = HouseholdLog.objects.filter( household_structure__in=household_structures) household_logs.delete() household_dashboard = HouseholdDashboard() household_dashboard._household_structure = household_structures[0] household_dashboard.household_log self.assertTrue(household_dashboard.household_log)
def setUp(self): try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass BcppAppConfiguration() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() self.survey1 = Survey.objects.get( survey_name='BCPP Year 1') # see app_configuration plot = PlotFactory(community='test_community3', household_count=1, status='residential_habitable') household = Household.objects.get(plot=plot) self.household_structure = HouseholdStructure.objects.get( household=household, survey=self.survey1)
def startup(self): site_mappers.autodiscover() try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass bcpp_app_configuration.prepare() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() site_rule_groups.autodiscover() # site_visit_schedules.autodiscover() # site_visit_schedules.build_all() self.household_structure = None self.registered_subject = None self.representative_eligibility = None self.study_site = None self.intervention = None # try: # site_lab_profiles.register(BcppSubjectProfile()) # except AlreadyRegisteredLabProfile: # pass # BcppAppConfiguration() # site_lab_tracker.autodiscover() # BcppSubjectVisitSchedule().build() self.community = site_mappers.get_current_mapper().map_area self.study_site = StudySite.objects.get( site_code=site_mappers.get_current_mapper().map_code) self.site_code = self.study_site self.intervention = site_mappers.get_current_mapper().intervention self.survey1 = Survey.objects.get( survey_name='BCPP Year 1') # see app_configuration self.survey2 = Survey.objects.get( survey_name='BCPP Year 2') # see app_configuration plot = PlotFactory(community=self.community, household_count=1, status='residential_habitable') household = Household.objects.get(plot=plot) self.create_baseline(household) self.create_annual(household)
def setUp(self): from bhp066.apps.bcpp.app_configuration.classes import BcppAppConfiguration self.household_structure = None self.registered_subject = None self.representative_eligibility = None self.study_site = None self.intervention = None try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass site_mappers.autodiscover() # set current community manually (not from settings) site_mappers.current_community = 'test_community' BcppAppConfiguration.study_start_datetime = datetime.today( ) + relativedelta(days=-2) BcppAppConfiguration.study_end_datetime = datetime.today( ) + relativedelta(days=45) bcpp_app_configuration = BcppAppConfiguration() # bypass any check of site_code and community against settings bcpp_app_configuration.confirm_site_code_in_settings = False bcpp_app_configuration.confirm_community_in_settings = False bcpp_app_configuration.prepare() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() self.survey1 = Survey.objects.get( survey_name='BCPP Year 1') # see app_configuration plot = PlotFactory(community='test_community', household_count=1, status='residential_habitable') household = Household.objects.get(plot=plot) self.household_structure = HouseholdStructure.objects.get( household=household, survey=self.survey1) self.representative_eligibility = RepresentativeEligibilityFactory( household_structure=self.household_structure) self.study_site = StudySite.objects.get( site_code=site_mappers.get_current_mapper().map_code) self.intervention = site_mappers.get_current_mapper().intervention
def setUp(self): self.household_member = None self.subject_consent = None self.registered_subject = None try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass bcpp_app_configuration.prepare() site_lab_tracker.autodiscover() site_visit_schedules.autodiscover() site_visit_schedules.build_all() self.survey = Survey.objects.current_survey() self.plot = PlotFactory(community='oodi', household_count=1, status='bcpp_clinic') self.household = HouseholdFactory(plot=self.plot) self.household_structure = HouseholdStructure.objects.get(household=self.household, survey=self.survey) self.study_site = StudySite.objects.get(site_code=site_mappers.get_current_mapper().map_code) self.intervention = site_mappers.get_current_mapper().intervention site_mappers.get_current_mapper().verify_survey_dates()
def setUp(self): try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass BcppAppConfiguration() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() self.survey1 = Survey.objects.get(survey_name='BCPP Year 1') # see app_configuration site_mappers.autodiscover() mapper = site_mappers.get(site_mappers.get_as_list()[0]) self.community = mapper().get_map_area() gps_degrees_s, gps_minutes_s, gps_degrees_e, gps_minutes_e = mapper().test_location self.plot = PlotFactory(community=self.community, gps_degrees_s=gps_degrees_s, gps_minutes_s=gps_minutes_s, gps_degrees_e=gps_degrees_e, gps_minutes_e=gps_minutes_e, household_count=2, status='residential_habitable') self.household1 = Household.objects.filter(plot=self.plot).order_by('created')[0] self.household_structure1 = HouseholdStructure.objects.get(household=self.household1, survey=self.survey1) self.household2 = Household.objects.filter(plot=self.plot).order_by('created')[1] self.household_member1 = HouseholdMemberFactory(household_structure=self.household_structure1, age_in_years=26, present_today='Yes', member_status='RESEARCH') self.household_member2 = HouseholdMemberFactory(household_structure=self.household_structure1, age_in_years=36, present_today='Yes') self.household_member3 = HouseholdMemberFactory(household_structure=self.household_structure1, age_in_years=12, present_today='Yes') self.household_member4 = HouseholdMemberFactory(household_structure=self.household_structure1, age_in_years=99, present_today='Yes') self.dashboard_type = 'household' self.dashboard_model = 'household' self.dashboard_id = self.household1.pk self.household_member1.eligible_subject = True self.subject_consent = SubjectConsentFactory( household_member=self.household_member1, first_name=self.household_member1.first_name, initials=self.household_member1.initials, registered_subject=self.household_member1.registered_subject)
def test_all_forms(self): adminuser = User.objects.create_user('django', '*****@*****.**', 'pass') adminuser.save() adminuser.is_staff = True adminuser.is_active = True adminuser.is_superuser = True adminuser.save() self.client.login(username=adminuser.username, password='******') content_type_map = ContentTypeMap.objects.get( content_type__model='SubjectConsent'.lower()) membership_form = MembershipFormFactory( content_type_map=content_type_map) schedule_group = ScheduleGroupFactory(membership_form=membership_form, group_name='enrollment', grouping_key='ELIGIBILITY') visit_tracking_content_type_map = ContentTypeMap.objects.get( content_type__model='subjectvisit') visit_definition = VisitDefinitionFactory( code='1000', title='Enrollment', grouping='subject', visit_tracking_content_type_map=visit_tracking_content_type_map) visit_definition.schedule_group.add(schedule_group) survey = SurveyFactory() print('get site mappers') site_mappers.autodiscover() print('get one mapper') mapper = site_mappers.get(site_mappers.get_as_list()[0]) print('mapper is {0}'.format(mapper().get_map_area())) print('Create a plot') plot = PlotFactory(community=mapper().get_map_area()) household = HouseholdFactory(plot=plot) household_structure = HouseholdStructure.objects.get( household=household, survey=survey) HouseholdMemberFactory(household_structure=household_structure) HouseholdMemberFactory(household_structure=household_structure) HouseholdMemberFactory(household_structure=household_structure) household_member = HouseholdMemberFactory( household_structure=household_structure) n = 0 # collect inline models inline_models = [] models = [] for model, model_admin in admin.site._registry.iteritems(): if self.app_label == model._meta.app_label: models.append(model) inline_models = inline_models + [ m.model for m in model_admin.inlines ] print('Inline models are {0}'.format(', '.join( [m._meta.object_name for m in inline_models]))) for model, model_admin in admin.site._registry.iteritems(): if self.app_label == model._meta.app_label: if model in models and model not in inline_models: n += 1 model_name = model._meta.object_name print('{0}_{1}_add'.format(model._meta.app_label, model_name.lower())) url = reverse('admin:{0}_{1}_add'.format( model._meta.app_label, model_name.lower())) response = self.client.get(url) print(' assert response=200') self.assertEqual(response.status_code, 200) print(' assert template') self.assertTemplateUsed(response, 'admin/change_form.html') factory_mod = __import__( '{0}.tests.factories'.format(self.app_label), fromlist=['{0}Factory'.format(model_name)]) factory = getattr(factory_mod, '{0}Factory'.format(model_name)) print(' instantiate the factory') model_instance = factory() print(' get admin change url for pk={0}'.format( model_instance.id)) url = reverse('admin:{0}_{1}_change'.format( model_instance._meta.app_label, model_instance._meta.object_name.lower()), args=(model_instance.id, )) print(' url = {0}'.format(url)) if model_admin.inlines: for inline_admin in model_admin.inlines: print(' inline model {0}'.format( inline_admin.model)) print(' {0}_{1}_add'.format( inline_admin.model._meta.app_label, inline_admin.model._meta.object_name.lower())) url = reverse('admin:{0}_{1}_add'.format( inline_admin.model._meta.app_label, inline_admin.model._meta.object_name.lower())) response = self.client.get(url) print(' assert response=200') self.assertEqual(response.status_code, 200) print(' assert template') self.assertTemplateUsed(response, 'admin/change_form.html') factory_mod = __import__( 'bcpp_subject.tests.factories', fromlist=[ '{0}Factory'.format( inline_admin.model._meta.object_name) ]) factory = getattr( factory_mod, '{0}Factory'.format( inline_admin.model._meta.object_name)) print(' instantiate the factory {0}'.format( factory)) factory( **{ convert_from_camel(model_instance._meta.object_name): model_instance, 'subject_visit': model_instance.subject_visit }) factory( **{ convert_from_camel(model_instance._meta.object_name): model_instance, 'subject_visit': model_instance.subject_visit }) print(' post url') response = self.client.post(url, model_instance.__dict__) self.assertEqual(response.status_code, 200) print('tested {0} forms'.format(n))
def test_p1(self): adminuser = User.objects.create_user('django', '*****@*****.**', 'pass') adminuser.save() adminuser.is_staff = True adminuser.is_active = True adminuser.is_superuser = True adminuser.save() self.client.login(username=adminuser.username, password='******') print 'create a survey' survey1 = SurveyFactory() survey2 = SurveyFactory() print 'get site mappers' site_mappers.autodiscover() print 'get one mapper' mapper = site_mappers.get(site_mappers.get_as_list()[0]) print 'mapper is {0}'.format(mapper().get_map_area()) print 'create a plot model instance for community {0}'.format( mapper().get_map_area()) self.assertEqual(Household.objects.all().count(), 0) print 'Create a plot' plot = PlotFactory(community=mapper().get_map_area()) plot.save() print 'create a household on this plot for survey={0}'.format(survey1) household = HouseholdFactory(plot=plot) print 'assert hs created' self.assertRaises(IntegrityError, HouseholdStructureFactory, household=household, survey=survey1) household_structure1 = HouseholdStructure.objects.get( household=household, survey=survey1) print 'add members' hm1 = HouseholdMemberFactory(household_structure=household_structure1, first_name='ERIK', initials='EW') hm2 = HouseholdMemberFactory(household_structure=household_structure1, first_name='ERIK', initials='E1W') hm3 = HouseholdMemberFactory(household_structure=household_structure1, first_name='ERIK', initials='E2W') print 'change members' hm1.save() hm2.save() hm3.save() print 'resave household on this plot for survey={0}'.format(survey2) household.save() self.assertRaises(IntegrityError, HouseholdStructureFactory, household=household, survey=survey2) household_structure2 = HouseholdStructure.objects.get( household=household, survey=survey2) print 'assert using different hs' self.assertNotEqual(household_structure1, household_structure2) print 'add members' HouseholdMemberFactory(household_structure=household_structure2) HouseholdMemberFactory(household_structure=household_structure2, first_name='ERIK', initials='E1W') HouseholdMemberFactory(household_structure=household_structure2, first_name='ERIK', initials='E2W') HouseholdMemberFactory(household_structure=household_structure2, first_name='ERIK', initials='EW') print 'change members' hm1.save() hm2.save() hm3.save()
def setUp(self): try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass BcppAppConfiguration().prepare() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() site_rule_groups.autodiscover() plot = PlotFactory(community=self.community, household_count=1, status='residential_habitable') survey_T0 = Survey.objects.get(survey_slug='bcpp-year-1') survey_T1 = Survey.objects.get(survey_slug='bcpp-year-2') survey_T2 = Survey.objects.get(survey_slug='bcpp-year-3') self.study_site = StudySite.objects.get(site_code='01') self.household_structure = HouseholdStructure.objects.get( household__plot=plot, survey=survey_T0) self.household_structure_y2 = HouseholdStructure.objects.get( household__plot=plot, survey=survey_T1) self.household_structure_y3 = HouseholdStructure.objects.get( household__plot=plot, survey=survey_T2) RepresentativeEligibilityFactory( household_structure=self.household_structure) RepresentativeEligibilityFactory( household_structure=self.household_structure_y2) RepresentativeEligibilityFactory( household_structure=self.household_structure_y3) HouseholdMemberFactory(household_structure=self.household_structure) #HouseholdMemberFactory(household_structure=self.household_structure) #HouseholdMemberFactory(household_structure=self.household_structure) male_dob = date.today() - relativedelta(years=25) male_age_in_years = 25 male_first_name = 'ERIK' male_initials = "EW" female_dob = date.today() - relativedelta(years=35) female_age_in_years = 35 female_first_name = 'ERIKA' female_initials = "EW" registered_subject = RegisteredSubjectFactory( registration_identifier='123456467') self.household_member_female_T0 = HouseholdMemberFactory( household_structure=self.household_structure, gender='F', age_in_years=female_age_in_years, first_name=female_first_name, initials=female_initials, registered_subject=registered_subject) registered_subject = RegisteredSubjectFactory( registration_identifier='123456468') self.household_member_male_T0 = HouseholdMemberFactory( household_structure=self.household_structure, gender='M', age_in_years=male_age_in_years, first_name=male_first_name, initials=male_initials, registered_subject=registered_subject) self.household_member_female_T0.member_status = 'BHS_SCREEN' self.household_member_male_T0.member_status = 'BHS_SCREEN' self.household_member_female_T0.save() self.household_member_male_T0.save() EnrollmentChecklistFactory( household_member=self.household_member_female_T0, gender='F', citizen=YES, dob=female_dob, guardian=NO, initials=self.household_member_female_T0.initials, part_time_resident=YES) EnrollmentChecklistFactory( household_member=self.household_member_male_T0, gender='M', citizen=YES, dob=male_dob, guardian=NO, initials=self.household_member_male_T0.initials, part_time_resident=YES) subject_consent_female = SubjectConsentFactory( household_member=self.household_member_female_T0, confirm_identity='101129811', identity='101129811', study_site=self.study_site, gender='F', dob=female_dob, first_name=female_first_name, initials=female_initials) subject_consent_male = SubjectConsentFactory( household_member=self.household_member_male_T0, confirm_identity='101119811', identity='101119811', study_site=self.study_site, gender='M', dob=male_dob, first_name=male_first_name, initials=male_initials) self.assertEqual( HouseholdStructure.objects.filter( household=self.household_structure.household, survey=survey_T0, enumerated=True, enrolled=True).count(), 1) enumeration_helper_T2 = EnumerationHelper( self.household_structure.household, survey_T0, survey_T1) enumeration_helper_T2.add_members_from_survey() self.household_member_female = HouseholdMember.objects.get( internal_identifier=self.household_member_female_T0. internal_identifier, household_structure__survey=survey_T1) self.household_member_male = HouseholdMember.objects.get( internal_identifier=self.household_member_male_T0. internal_identifier, household_structure__survey=survey_T1) self.assertEqual( HouseholdStructure.objects.filter( household=self.household_structure_y2.household, survey=survey_T1, enumerated=True, enrolled=True).count(), 1) enumeration_helper_T3 = EnumerationHelper( self.household_structure.household, survey_T1, survey_T2) enumeration_helper_T3.add_members_from_survey() self.household_member_female_T2 = HouseholdMember.objects.get( internal_identifier=self.household_member_female. internal_identifier, household_structure__survey=survey_T2) self.household_member_male_T2 = HouseholdMember.objects.get( internal_identifier=self.household_member_male.internal_identifier, household_structure__survey=survey_T2) self.assertEqual( HouseholdStructure.objects.filter( household=self.household_structure_y3.household, survey=survey_T2, enumerated=True, enrolled=True).count(), 1) self.registered_subject_female = RegisteredSubject.objects.get( subject_identifier=subject_consent_female.subject_identifier) self.registered_subject_male = RegisteredSubject.objects.get( subject_identifier=subject_consent_male.subject_identifier) self.appointment_female = Appointment.objects.get( registered_subject=self.registered_subject_female, visit_definition__code='T1') self.appointment_female_T0 = Appointment.objects.get( registered_subject=self.registered_subject_female, visit_definition__code='T0') self.appointment_female_T2 = Appointment.objects.get( registered_subject=self.registered_subject_female, visit_definition__code='T2') self.subject_visit_female_T0 = SubjectVisitFactory( appointment=self.appointment_female_T0, household_member=self.household_member_female_T0) self.subject_visit_female = SubjectVisitFactory( appointment=self.appointment_female, household_member=self.household_member_female) self.subject_visit_female_T2 = SubjectVisitFactory( appointment=self.appointment_female_T2, household_member=self.household_member_female_T2) self.appointment_male = Appointment.objects.get( registered_subject=self.registered_subject_male, visit_definition__code='T1') self.appointment_male_T0 = Appointment.objects.get( registered_subject=self.registered_subject_male, visit_definition__code='T0') self.appointment_male_T2 = Appointment.objects.get( registered_subject=self.registered_subject_male, visit_definition__code='T2') self.subject_visit_male_T0 = SubjectVisitFactory( appointment=self.appointment_male_T0, household_member=self.household_member_male_T0) self.subject_visit_male = SubjectVisitFactory( appointment=self.appointment_male, household_member=self.household_member_male) self.subject_visit_male_T2 = SubjectVisitFactory( appointment=self.appointment_male_T2, household_member=self.household_member_male_T2)
def setUp(self): site_mappers.autodiscover() from bhp066.apps.bcpp_subject.visit_schedule import BcppSubjectVisitSchedule try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass self.app_config = BcppAppConfiguration() self.app_config.prepare() self.app_config.prep_survey_for_tests() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() site_rule_groups.autodiscover() plot = PlotFactory(community=self.community, household_count=1, status='residential_habitable') self.survey_bhs = Survey.objects.get(survey_slug='bcpp-year-1') self.survey_ahs = Survey.objects.get(survey_slug='bcpp-year-2') self.study_site = StudySite.objects.get(site_code='01') self.household_structure_bhs = HouseholdStructure.objects.get( household__plot=plot, survey=self.survey_bhs) self.household_structure_ahs = HouseholdStructure.objects.get( household__plot=plot, survey=self.survey_ahs) self.create_household_log_entry(self.household_structure_bhs) RepresentativeEligibilityFactory( household_structure=self.household_structure_bhs) self.male_dob = date.today() - relativedelta(years=25) self.male_age_in_years = 25 self.male_first_name = 'ERIK' self.male_last_name = 'HIEWAI' self.male_initials = "EW" self.household_member_male_T0 = HouseholdMemberFactory( household_structure=self.household_structure_bhs, gender='M', age_in_years=self.male_age_in_years, first_name=self.male_first_name, initials=self.male_initials) HeadHouseholdEligibilityFactory( household_member=self.household_member_male_T0, household_structure=self.household_structure_bhs) self.household_member_male_T0.eligible_hoh = True self.household_member_male_T0.save() HouseholdInfoFactory(household_member=self.household_member_male_T0, household_structure=self.household_structure_bhs, registered_subject=self.household_member_male_T0. registered_subject) self.enrollment = EnrollmentChecklistFactory( household_member=self.household_member_male_T0, gender='M', citizen='Yes', dob=self.male_dob, guardian='No', initials=self.household_member_male_T0.initials, part_time_resident='Yes') self.subject_consent_male = SubjectConsentFactory( household_member=self.household_member_male_T0, confirm_identity='101119811', identity='101119811', study_site=self.study_site, gender='M', dob=self.male_dob, first_name=self.male_first_name, initials=self.male_initials) self.data = { 'last_name': 'WIZZY', 'is_minor': 'No', 'witness_name': None, 'is_literate': 'Yes', 'subject_type': 'subject', 'consent_copy': 'Yes', 'is_verified': False, 'consent_signature': None, 'first_name': 'ERIK', 'dm_comment': None, 'is_dob_estimated': None, 'verified_by': None, 'user_modified': u'', 'is_signed': True, 'is_verified_datetime': None, 'subject_identifier_aka': None, 'version': u'4', 'citizen': 'Yes', 'legal_marriage': u'N/A', 'assessment_score': 'Yes', 'is_incarcerated': 'No', 'consent_reviewed': 'Yes', 'study_questions': 'Yes', 'sid': None, 'study_site_id': self.study_site.id, 'may_store_samples': YES, 'consent_version_recent': None, 'subject_identifier': self.household_member_male_T0.registered_subject. subject_identifier, 'subject_identifier_as_pk': self.household_member_male_T0.registered_subject.id, 'community': u'test_community', 'using': 'default', 'marriage_certificate_no': None, 'identity': '317918515', 'confirm_identity': '317918515', 'registered_subject_id': self.household_member_male_T0.registered_subject.id, 'identity_type': 'OMANG', 'language': u'not specified', 'guardian_name': None, 'gender': 'M', 'household_member': self.household_member_male_T0.id, 'marriage_certificate': u'N/A', 'dob': self.male_dob, 'study_site': self.study_site.id, 'initials': 'EW', 'language': 'en', 'is_dob_estimated': '-', 'consent_signature': YES, 'consent_datetime': datetime.today(), 'version': 1 }
def test_p3(self): instances = [] plot = PlotFactory(community='test_community6', household_count=1, status='residential_habitable') household = Household.objects.get(plot=plot) household_structure = HouseholdStructure.objects.get( survey=Survey.objects.all()[0]) representative_eligibility = RepresentativeEligibilityFactory( household_structure=household_structure) household_member = HouseholdMemberFactory( household_structure=household_structure) enrollment_checklist = EnrollmentChecklistFactory( household_member=household_member, initials=household_member.initials, has_identity='Yes', dob=date(1989, 01, 01)) self.assertTrue(enrollment_checklist.is_eligible) instances.append(enrollment_checklist) self.assertEqual(RegisteredSubject.objects.all().count(), 1) registered_subject = RegisteredSubject.objects.all()[0] site = StudySite.objects.all()[0] subject_consent = SubjectConsentFactory( study_site=site, household_member=household_member, registered_subject=household_member.registered_subject, dob=enrollment_checklist.dob, initials=enrollment_checklist.initials) instances.append(subject_consent) self.assertEqual(Appointment.objects.all().count(), 1) appointment = Appointment.objects.get( registered_subject=registered_subject) subject_visit = SubjectVisitFactory(household_member=household_member, appointment=appointment) instances.append(subject_visit) aliquot_type = AliquotType.objects.all()[0] panel = Panel.objects.all()[0] subjects_requisition = SubjectRequisitionFactory( subject_visit=subject_visit, panel=panel, site=site, aliquot_type=aliquot_type, ) self.assertEqual(Aliquot.objects.all().count(), 0) subjects_requisition.is_receive = True subjects_requisition.is_receive_datetime = datetime.now() subjects_requisition.save() lab_profile = site_lab_profiles.get( subjects_requisition._meta.object_name) lab_profile().receive(subjects_requisition) receive = Receive.objects.all()[0] self.assertEqual(Aliquot.objects.all().count(), 1) aliquot = Aliquot.objects.all()[0] processing = ProcessingFactory(profile=AliquotProfile.objects.all()[0], aliquot=aliquot) for al in Aliquot.objects.all(): instances.append(al) instances.append(processing) instances.append(receive) self.assertEqual(PackingListItem.objects.all().count(), 0) packing_list = PackingListFactory( list_items=aliquot.aliquot_identifier) instances.append(packing_list) packing_list.list_items = al.aliquot_identifier print packing_list.list_items packing_list.save() #self.assertEquals(PackingListItem.objects.all().count(), 1) #instances.append(PackingListItem.objects.all()[0]) print 'INSTANCE: ' + str(instances) for obj in instances: print 'test natural key on {0}'.format(obj._meta.object_name) natural_key = obj.natural_key() get_obj = obj.__class__.objects.get_by_natural_key(*natural_key) self.assertEqual(obj.pk, get_obj.pk) # pp = pprint.PrettyPrinter(indent=4) for obj in instances: print 'test serializing/deserializing {0}'.format( obj._meta.object_name) 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 setUp(self): site_mappers.autodiscover() try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass mapper = site_mappers._registry_by_code.get('01') mapper.survey_dates = { 'bcpp-year-1': SurveyDatesTuple(name='bhs', start_date=date.today() + relativedelta(years=-1) + relativedelta(days=-89), full_enrollment_date=date.today() + relativedelta(years=-1) + relativedelta(days=60), end_date=date.today() + relativedelta(years=-1) + relativedelta(days=89), smc_start_date=date.today() + relativedelta(years=-1) + relativedelta(days=89)), 'bcpp-year-2': SurveyDatesTuple(name='t1', start_date=date.today() + relativedelta(years=0) + relativedelta(days=-89), full_enrollment_date=date.today() + relativedelta(years=0) + relativedelta(days=60), end_date=date.today() + relativedelta(years=0) + relativedelta(days=89), smc_start_date=date.today() + relativedelta(years=0) + relativedelta(days=89)), } bcpp_app_configuration.survey_setup = { 'bcpp-year-1': { 'survey_name': 'BCPP Year 1', 'survey_slug': 'bcpp-year-1', 'datetime_start': datetime.today() + relativedelta(years=-1) + relativedelta(days=-30), 'datetime_end': datetime.today() + relativedelta(years=-1) + relativedelta(days=30) }, 'bcpp-year-2': { 'survey_name': 'BCPP Year 2', 'survey_slug': 'bcpp-year-2', 'datetime_start': datetime.today() + relativedelta(days=-90), 'datetime_end': datetime.today() + relativedelta(days=90) }, 'bcpp-year-3': { 'survey_name': 'BCPP Year 3', 'survey_slug': 'bcpp-year-3', 'datetime_start': datetime.today() + relativedelta(years=1) + relativedelta(days=-30), 'datetime_end': datetime.today() + relativedelta(years=1) + relativedelta(days=30) }, } bcpp_app_configuration.prepare() site_lab_tracker.autodiscover() site_visit_schedules.autodiscover() site_visit_schedules.build_all() self.survey2 = Survey.objects.current_survey() self.survey1 = Survey.objects.previous_survey() plot = PlotFactory(community='test_community', household_count=1, status='residential_habitable') self.household = Household.objects.get(plot=plot) self.source_household_structure = HouseholdStructure.objects.get( household=self.household, survey=self.survey1) self.target_household_structure = HouseholdStructure.objects.get( household=self.household, survey=self.survey2) self.representative_eligibility = RepresentativeEligibilityFactory( household_structure=self.source_household_structure) self.study_site = StudySite.objects.get( site_code=site_mappers.get_current_mapper().map_code) self.intervention = site_mappers.get_current_mapper().intervention # add members to source HouseholdMemberFactory( household_structure=self.source_household_structure) HouseholdMemberFactory( household_structure=self.source_household_structure) HouseholdMemberFactory( household_structure=self.source_household_structure) HouseholdMemberFactory( household_structure=self.source_household_structure) HouseholdMemberFactory( household_structure=self.source_household_structure)
def test_p3(self): survey = Survey.objects.all()[0] from bhp066.apps.bcpp_household.models import HouseholdStructure plot = PlotFactory(community='test_community6', household_count=1, status='residential_habitable') household = Household.objects.get(plot=plot) signals.post_save.disconnect(household_on_post_save, weak=False, dispatch_uid="post_save_on_household") signals.post_save.disconnect( household_structure_on_post_save, weak=False, dispatch_uid="household_structure_on_post_save") household_structure = HouseholdStructure.objects.get( household=household, survey=survey) representative_eligibility = RepresentativeEligibilityFactory( household_structure=household_structure) signals.post_save.connect(household_on_post_save, weak=False, dispatch_uid="post_save_on_household") signals.post_save.connect( household_structure_on_post_save, weak=False, dispatch_uid="household_structure_on_post_save") household_member = HouseholdMemberFactory( age_in_years=16, household_structure=household_structure, survey=survey) #loss = EnrollmentLossFactory(household_member = household_member) print 'get registered subject' registered_subject = RegisteredSubject.objects.get( subject_identifier=household_member.registered_subject. subject_identifier) from .factories import SubjectRefusalFactory household_member.member_status = 'REFUSED' subject_refusal = SubjectRefusalFactory( household_member=household_member) SubjectRefusal.objects.get(household_member=household_member).delete() subject_refusal_history = SubjectRefusalHistory.objects.get( household_member=household_member) self.assertEquals(EnrollmentLoss.objects.all().count(), 0) household_member.member_status = 'BHS_SCREEN' enrollment_checklist = EnrollmentChecklistFactory( household_member=household_member, initials=household_member.initials, has_identity='No') self.assertEquals(EnrollmentLoss.objects.all().count(), 1) #loss = EnrollmentLoss.objects.get(household_member=household_member) household_member.member_status = 'HTC_ELIGIBLE' subject_htc = SubjectHtcFactory(household_member=household_member) self.assertRaises( ValidationError, lambda: HouseholdInfoFactory( household_structure=household_structure, household_member=household_member)) household_member.age_in_years = 19 household_head_eligibility = HeadHouseholdEligibilityFactory( household_member=household_member) household_info = HouseholdInfoFactory( household_structure=household_structure, household_member=household_member) subject_absentee = SubjectAbsenteeFactory( household_member=household_member, registered_subject=registered_subject) self.assertEquals(EnrollmentChecklist.objects.all().count(), 0) subject_undecided = SubjectUndecidedFactory( household_member=household_member, registered_subject=registered_subject) subject_moved = SubjectMovedFactory( household_member=household_member, registered_subject=registered_subject) subject_absentee_entry = SubjectAbsenteeEntryFactory( subject_absentee=subject_absentee, report_datetime=date.today()) subject_undecided_entry = SubjectUndecidedEntryFactory( subject_undecided=subject_undecided, report_datetime=date.today()) subject_absentee_entry1 = SubjectAbsenteeEntryFactory( subject_absentee=subject_absentee, report_datetime=date.today() + timedelta(days=int(2))) subject_undecided_entry1 = SubjectUndecidedEntryFactory( subject_undecided=subject_undecided, report_datetime=date.today() + timedelta(days=int(2))) instances = [] instances.append(household_member) instances.append(registered_subject) #instances.append(enrollment_checklist) instances.append(household_structure) instances.append(household_info) #instances.append(subject_refusal) instances.append(subject_htc) instances.append(subject_refusal_history) #instances.append(loss) instances.append(household_head_eligibility) instances.append(subject_moved) instances.append(subject_absentee_entry) instances.append(subject_undecided_entry) instances.append(subject_absentee_entry1) instances.append(subject_undecided_entry1) print 'INSTANCE: ' + str(instances) for obj in instances: print 'test natural key on {0}'.format(obj._meta.object_name) natural_key = obj.natural_key() get_obj = obj.__class__.objects.get_by_natural_key(*natural_key) self.assertEqual(obj.pk, get_obj.pk) # pp = pprint.PrettyPrinter(indent=4) for obj in instances: print 'test serializing/deserializing {0}'.format( obj._meta.object_name) outgoing_transaction = SerializeToTransaction().serialize( obj.__class__, obj, False, True, 'default') # pp.pprint(FieldCryptor('aes', 'local').decrypt(outgoing_transaction.tx)) for transaction in serializers.deserialize( "json", FieldCryptor('aes', 'local').decrypt(outgoing_transaction.tx)): self.assertEqual(transaction.object.pk, obj.pk)
def setUp(self): try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass BcppAppConfiguration().prepare() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() site_rule_groups.autodiscover() self.study_site = StudySite.objects.get(site_code='01') self.survey = Survey.objects.all()[0] plot = PlotFactory(community=self.community, household_count=1, status='residential_habitable') survey = Survey.objects.all().order_by('datetime_start')[0] next_survey = Survey.objects.all().order_by('datetime_start')[1] self.household_structure = HouseholdStructure.objects.get( household__plot=plot, survey=survey) self.household_structure_y2 = HouseholdStructure.objects.get( household__plot=plot, survey=next_survey) RepresentativeEligibilityFactory( household_structure=self.household_structure) RepresentativeEligibilityFactory( household_structure=self.household_structure_y2) self.female_dob = date(1989, 10, 10) self.female_age_in_years = relativedelta(date.today(), self.female_dob).years self.female_first_name = 'ERIKA' self.female_last_name = 'WAXON' self.female_initials = "EW" self.household_member_female_T0 = HouseholdMemberFactory( household_structure=self.household_structure, gender='F', age_in_years=self.female_age_in_years, first_name=self.female_first_name, initials=self.female_initials) self.household_member_female_T0.member_status = 'BHS_SCREEN' self.household_member_female_T0.save() self.assertEqual(self.household_member_female_T0.member_status, 'BHS_SCREEN') self.enrollment_checklist_female = EnrollmentChecklistFactory( household_member=self.household_member_female_T0, gender='F', citizen='Yes', dob=self.female_dob, guardian='No', initials=self.household_member_female_T0.initials, part_time_resident='Yes') self.subject_consent_female = SubjectConsentFactory( household_member=self.household_member_female_T0, study_site=self.study_site, gender='F', dob=self.female_dob, first_name=self.female_first_name, last_name=self.female_last_name, initials=self.female_initials) self.registered_subject_female = RegisteredSubject.objects.get( subject_identifier=self.subject_consent_female.subject_identifier) enumeration_helper = EnumerationHelper( self.household_structure.household, survey, next_survey) self.household_member_female = enumeration_helper.create_member_on_target( self.household_member_female_T0) self.appointment_female = Appointment.objects.get( registered_subject=self.registered_subject_female, visit_definition__code='T1') self.appointment_female_T0 = Appointment.objects.get( registered_subject=self.registered_subject_female, visit_definition__code='T0') self.subject_visit_female_T0 = SubjectVisitFactory( appointment=self.appointment_female_T0, household_member=self.household_member_female_T0) self.subject_visit_female = SubjectVisitFactory( appointment=self.appointment_female, household_member=self.household_member_female) self.locator_female_T0 = SubjectLocatorFactory( subject_visit=self.subject_visit_female_T0, registered_subject=self.registered_subject_female) self.residency_mobility_female_T0 = ResidencyMobilityFactory( subject_visit=self.subject_visit_female_T0) microtube_panel = Panel.objects.get(name='Microtube') aliquot_type = AliquotType.objects.all()[0] self.subject_requisition_T0 = SubjectRequisitionFactory( subject_visit=self.subject_visit_female_T0, panel=microtube_panel, aliquot_type=aliquot_type) self.hiv_result_today_T0 = HivResultFactory( subject_visit=self.subject_visit_female_T0, hiv_result=NEG)
def setUp(self): try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass BcppAppConfiguration().prepare() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() site_rule_groups.autodiscover() plot = PlotFactory(community=self.community, household_count=1, status='residential_habitable') survey = Survey.objects.all().order_by('datetime_start')[0] self.study_site = StudySite.objects.get(site_code='14') self.household_structure = HouseholdStructure.objects.get( household__plot=plot, survey=survey) RepresentativeEligibilityFactory( household_structure=self.household_structure) HouseholdMemberFactory(household_structure=self.household_structure) self.male_dob = date.today() - relativedelta(years=25) self.male_age_in_years = 25 self.male_first_name = 'ERIK' self.male_initials = "EW" female_dob = date.today() - relativedelta(years=35) female_age_in_years = 35 female_first_name = 'ERIKA' female_initials = "EW" self.household_member_female_T0 = HouseholdMemberFactory( household_structure=self.household_structure, gender='F', age_in_years=female_age_in_years, first_name=female_first_name, initials=female_initials) self.household_member_male_T0 = HouseholdMemberFactory( household_structure=self.household_structure, gender='M', age_in_years=self.male_age_in_years, first_name=self.male_first_name, initials=self.male_initials) EnrollmentChecklistFactory( household_member=self.household_member_male_T0, gender='M', citizen='Yes', dob=self.male_dob, guardian='No', initials=self.household_member_male_T0.initials, part_time_resident='Yes') EnrollmentChecklistFactory( household_member=self.household_member_female_T0, gender='F', citizen='Yes', dob=female_dob, guardian='No', initials=self.household_member_female_T0.initials, part_time_resident='Yes') subject_consent_female = SubjectConsentFactory( household_member=self.household_member_female_T0, study_site=self.study_site, gender='F', dob=female_dob, first_name=female_first_name, initials=female_initials) self.subject_consent_male = SubjectConsentFactory( household_member=self.household_member_male_T0, study_site=self.study_site, gender='M', dob=self.male_dob, first_name=self.male_first_name, initials=self.male_initials) self.registered_subject_male = RegisteredSubject.objects.get( subject_identifier=self.subject_consent_male.subject_identifier) self.registered_subject_female = RegisteredSubject.objects.get( subject_identifier=subject_consent_female.subject_identifier) self.appointment_male_T0 = Appointment.objects.get( registered_subject=self.registered_subject_male, visit_definition__code='T0') self.appointment_female_T0 = Appointment.objects.get( registered_subject=self.registered_subject_female, visit_definition__code='T0') self.subject_visit_male_T0 = SubjectVisitFactory( appointment=self.appointment_male_T0, household_member=self.household_member_male_T0) self.subject_visit_female_T0 = SubjectVisitFactory( appointment=self.appointment_female_T0, household_member=self.household_member_female_T0) Quota.objects.create(app_label='bcpp_subject', model_name='PimaVl', target=1, expires_datetime=timezone.now() + timedelta(days=1)) self.assertEqual(1, Quota.objects.all().count())
def test_p3(self): print 'get a community name from the mapper classes' mapper = site_mappers.get_current_mapper() community = mapper.map_area print 'No. of SURVEY = ' + str(Survey.objects.all().count()) plot = PlotFactory(community=community, household_count=1, status='residential_habitable') print 'No. of HOUSEHOLDS = ' + str(Household.objects.all().count()) Household.objects.get(plot=plot) self.assertEquals(HouseholdStructure.objects.all().count(), 3) self.assertEquals(Survey.objects.all().count(), 3) household_structure = HouseholdStructure.objects.get(survey=Survey.objects.all()[0]) RepresentativeEligibilityFactory(household_structure=household_structure) household_member = HouseholdMemberFactory(household_structure=household_structure) enrollment_checklist = EnrollmentChecklistFactory(household_member=household_member, initials=household_member.initials, has_identity='Yes', dob=date(1989, 01, 01)) study_site = StudySite.objects.all()[0] subject_consent = SubjectConsentFactory(study_site=study_site, household_member=household_member, registered_subject=household_member.registered_subject, dob=enrollment_checklist.dob, initials=enrollment_checklist.initials) print subject_consent.subject_identifier print 'get registered subject' registered_subject = RegisteredSubject.objects.get(subject_identifier=subject_consent.subject_identifier) instances = [] instances.append(subject_consent) instances.append(registered_subject) print 'test natural key / get_by_natural_key on subject_visit' print 'No. of ENTRIES = ' + str(Entry.objects.all().count()) # content_type = ContentType.objects.get(app_label='bcpp_subject', model='subjectvisit') # content_type_map = ContentTypeMap.objects.get(content_type=content_type) self.assertEqual(VisitDefinition.objects.all().count(), 2) visit_definition = VisitDefinition.objects.get(code='T0') print 'No. of Appointments = ' + str(Appointment.objects.all().count()) appointment = Appointment.objects.get(visit_definition=visit_definition) # print 'No. of ScheduledEntryMetaData before Visit = '+str(ScheduledEntryMetaData.objects.all().count()) subject_visit = SubjectVisitFactory(appointment=appointment, household_member=household_member) signals.post_save.disconnect(entry_meta_data_on_post_save, weak=False, dispatch_uid="entry_meta_data_on_post_save") aliquot_type = AliquotType.objects.all()[0] site = StudySite.objects.all()[0] microtube_panel = Panel.objects.get(name='Microtube') requisition1 = SubjectRequisitionFactory(subject_visit=subject_visit, panel=microtube_panel, aliquot_type=aliquot_type, site=site) # print requisition1.aliquot_type.numeric_code elisa_panel = Panel.objects.get(name='ELISA') requisition2 = SubjectRequisitionFactory(subject_visit=subject_visit, panel=elisa_panel, aliquot_type=aliquot_type, site=site) signals.post_save.connect(entry_meta_data_on_post_save, weak=False, dispatch_uid="entry_meta_data_on_post_save") subject_locator = SubjectLocatorFactory(subject_visit=subject_visit, registered_subject=registered_subject) year_1_survey = Survey.objects.get(survey_slug='bcpp-year-1') call_list = CallListFactory(household_member=household_member, label='call_label_1') call_log = CallLogFactory(household_member=household_member, survey=year_1_survey, label='call_label_1') call_log2 = CallLogFactory(household_member=household_member, survey=year_1_survey, label='call_label_2') call_log_entry = CallLogEntryFactory(call_log=call_log, survey=year_1_survey, call_datetime=datetime.now()) call_log_entry2 = CallLogEntryFactory(call_log=call_log, survey=year_1_survey, call_datetime=datetime.now() + timedelta(minutes=3)) instances.append(subject_locator) instances.append(requisition1) instances.append(requisition2) instances.append(call_log) instances.append(call_log2) instances.append(call_log_entry) instances.append(call_log_entry2) instances.append(call_list) print 'INSTANCE: ' + str(instances) for obj in instances: print 'test natural key on {0}'.format(obj._meta.object_name) natural_key = obj.natural_key() get_obj = obj.__class__.objects.get_by_natural_key(*natural_key) self.assertEqual(obj.pk, get_obj.pk) # pp = pprint.PrettyPrinter(indent=4) for obj in instances: print 'test serializing/deserializing {0}'.format(obj._meta.object_name) outgoing_transaction = SerializeToTransaction().serialize(obj.__class__, obj, False, True, 'default') # pp.pprint(FieldCryptor('aes', 'local').decrypt(outgoing_transaction.tx)) for transaction in serializers.deserialize("json", FieldCryptor('aes', 'local').decrypt(outgoing_transaction.tx)): self.assertEqual(transaction.object.pk, obj.pk)
def setUp(self): site_mappers.autodiscover() from bhp066.apps.bcpp_subject.visit_schedule import BcppSubjectVisitSchedule try: site_lab_profiles.register(BcppSubjectProfile()) except AlreadyRegisteredLabProfile: pass self.app_config = BcppAppConfiguration() self.app_config.prepare() self.app_config.prep_survey_for_tests() site_lab_tracker.autodiscover() BcppSubjectVisitSchedule().build() site_rule_groups.autodiscover() plot = PlotFactory(community=self.community, household_count=1, status='residential_habitable') self.survey_bhs = Survey.objects.get(survey_slug='bcpp-year-1') self.survey_ahs = Survey.objects.get(survey_slug='bcpp-year-2') self.study_site = StudySite.objects.get(site_code='01') self.household_structure_bhs = HouseholdStructure.objects.get( household__plot=plot, survey=self.survey_bhs) self.household_structure_ahs = HouseholdStructure.objects.get( household__plot=plot, survey=self.survey_ahs) self.create_household_log_entry(self.household_structure_bhs) RepresentativeEligibilityFactory( household_structure=self.household_structure_bhs) self.male_dob = date.today() - relativedelta(years=25) self.male_age_in_years = 25 self.male_first_name = 'ERIK' self.male_last_name = 'HIEWAI' self.male_initials = "EW" self.household_member_male_T0 = HouseholdMemberFactory( household_structure=self.household_structure_bhs, gender='M', age_in_years=self.male_age_in_years, first_name=self.male_first_name, initials=self.male_initials) HeadHouseholdEligibilityFactory( household_member=self.household_member_male_T0, household_structure=self.household_structure_bhs) self.household_member_male_T0.eligible_hoh = True self.household_member_male_T0.save() HouseholdInfoFactory(household_member=self.household_member_male_T0, household_structure=self.household_structure_bhs, registered_subject=self.household_member_male_T0. registered_subject) self.enrollment = EnrollmentChecklistFactory( household_member=self.household_member_male_T0, gender='M', citizen='Yes', dob=self.male_dob, guardian='No', initials=self.household_member_male_T0.initials, part_time_resident='Yes') self.subject_consent_male = SubjectConsentFactory( household_member=self.household_member_male_T0, confirm_identity='101119811', identity='101119811', study_site=self.study_site, gender='M', dob=self.male_dob, first_name=self.male_first_name, initials=self.male_initials) self.appointment = Appointment.objects.get( registered_subject=self.household_member_male_T0. registered_subject, visit_definition__code='T0') self.subject_visit = SubjectVisitFactory( household_member=self.household_member_male_T0, appointment=self.appointment) self.registered_subject = RegisteredSubject.objects.get( subject_identifier=self.subject_consent_male.subject_identifier) self.sexual_data = { 'subject_visit': self.subject_visit.id, 'alcohol_sex': 'Myself', 'report_datetime': datetime.today(), 'condom': NO, 'more_sex': NO, 'ever_sex': YES, 'first_sex': 20, 'last_year_partners': None, 'lifetime_sex_partners': 1, 'more_sex': None, 'subject_visit_id': None, 'user_modified': u'', } self.data = { 'subject_visit': self.subject_visit.id, 'concurrent': NO, 'first_partner_live': None, 'first_condom_freq': u'Sometimes', 'first_disclose': u'Yes', 'first_exchange': u'30-39', 'first_first_sex': u'Years', 'first_first_sex_calc': 3L, 'first_haart': None, 'first_partner_arm': None, 'first_partner_cp': u'No', 'first_partner_hiv': u'not_sure', 'first_relationship': u'Long-term partner', 'first_sex_current': u'Yes', 'first_sex_freq': None, 'goods_exchange': u'No', 'partner_hiv_test': u'not_sure', 'past_year_sex_freq': u'About once a month', 'report_datetime': datetime.today(), 'sex_partner_community': u'N/A', 'subject_visit_id': None, 'third_last_sex': u'Days', 'third_last_sex_calc': 7L, 'user_modified': u'' }