def testCaseManager(self): pt1, cgs1, prov1 = generator.generate_patient_and_careteam() pt2, cgs2, prov2 = generator.generate_patient_and_careteam() actor_creator = generator.generate_actor(generator.get_or_create_user(), "provider") actor_editor1 = generator.generate_actor(generator.get_or_create_user(), "provider") actor_editor2 = generator.generate_actor(generator.get_or_create_user(), "provider") actor_closer = generator.generate_actor(generator.get_or_create_user(), "provider") total_cases = 12 for i in range(total_cases): case = self._create_case(actor_creator, uuid.uuid1().hex) case.patient = pt1 if i%2 == 0: case.last_edit_by = actor_editor1 else: case.last_edit_by = actor_editor2 case.description = "edited, foolio: " + str(uuid.uuid1().hex) activity=ActivityClass.objects.filter(event_class=constants.CASE_EVENT_EDIT)[0] case.save(activity=activity) self.assertEqual(total_cases, Case.objects.get_authored(actor_creator).count()) self.assertEqual(0, Case.objects.get_authored(actor_creator, patient=pt2).count()) self.assertEqual(total_cases/2, Case.objects.get_edited(actor_editor1).count()) self.assertEqual(total_cases/2, Case.objects.get_edited(actor_editor2).count()) self.assertEqual(total_cases/2, Case.objects.get_edited(actor_editor1, patient=pt1).count()) self.assertEqual(0, Case.objects.get_edited(actor_editor1, patient=pt2).count()) self.assertEqual(total_cases/2, Case.objects.get_edited(actor_editor2, patient=pt1).count()) self.assertEqual(0, Case.objects.get_edited(actor_editor2, patient=pt2).count())
def testCreateMultipleSingleCareTeams(self): print "===============\nCreating multiple singular patient careteams" patients = [] caregivers_list = {} providers_list = {} for num in range(0,MAX_MULTI_PATIENTS): pt, caregivers, providers = generator.generate_patient_and_careteam() patients.append(pt) caregivers_list[pt] = caregivers providers_list[pt] = providers print "finished generating disparate patient careteams" #step 1: verify that that for each patient generated, ONLY the providers can view it for patient in patients: print "check disparate networks for patient %s" % (patient) cg_subset = [] prov_subset = [] for pt2 in patients: if pt2 == patient: continue cg_subset.append(caregivers_list[pt2]) prov_subset.append(providers_list[pt2]) for cgs in cg_subset: for cg in cgs: self.assertNotEqual(cg.patients[0], patient) self.assertFalse(Actor.permissions.can_view(patient, cg.user)) for provs in prov_subset: for prov in provs: self.assertNotEqual(prov.patients[0], patient) self.assertFalse(Actor.permissions.can_view(patient, prov.user))
def testCreateSingleCareTeamManually(self): print "===========================\nCreating singular patient with careteam manually" pt, caregivers, providers = generator.generate_patient_and_careteam() print "created careteam for one patient" for cg in caregivers: self.assertEqual(cg.patients[0], pt) self.assertTrue(Actor.permissions.can_view(pt, cg.user)) for prov in providers: self.assertEqual(prov.patients[0], pt) self.assertTrue(Actor.permissions.can_view(pt, prov.user))
def testDisparateCases(self): """Create two patients and make disparate case sets and verify there's no spillage in the API calls. """ pt1, cgs1, prov1 = generator.generate_patient_and_careteam() pt2, cgs2, prov2 = generator.generate_patient_and_careteam() num_case1 = random.randint(1,10) num_case2 = random.randint(1,10) total_cases = num_case1 + num_case2 case1 = [] case2 = [] for i in range(num_case1): actor = prov1[0] case = self._create_case(actor, uuid.uuid1().hex) case.patient = pt1 activity=ActivityClass.objects.filter(event_class=constants.CASE_EVENT_EDIT)[0] case.save(activity=activity) case1.append(case) for i in range(num_case2): actor = prov2[0] case = self._create_case(actor, uuid.uuid1().hex) case.patient = pt2 activity=ActivityClass.objects.filter(event_class=constants.CASE_EVENT_EDIT)[0] case.save(activity=activity) case2.append(case) print "verifying case creation 1:" self.assertEqual(num_case1, Case.objects.all().filter(patient=pt1).count()) self.assertEqual(num_case1, pt1.cases.count()) print "verifying case creation 2" self.assertEqual(num_case2, Case.objects.all().filter(patient=pt2).count()) self.assertEqual(num_case2, pt2.cases.count())