def test_is_usercase_of_ls(self): rule = _create_empty_rule(self.domain, case_type=USERCASE_TYPE) rule.add_criteria(CustomMatchDefinition, name='ICDS_IS_USERCASE_OF_LS') with create_user_case(self.aww) as aww_uc, create_user_case( self.ls) as ls_uc: self.assertFalse(rule.criteria_match(aww_uc, datetime.utcnow())) self.assertTrue(rule.criteria_match(ls_uc, datetime.utcnow()))
def test_agency_user_case_from_voucher_fulfilled_by_id(self): prescription = self.create_prescription_case() voucher = self.create_voucher_case(prescription.case_id) self.assertIsNone( agency_user_case_from_voucher_fulfilled_by_id( None, CaseReminder(domain=self.domain) ) ) self.assertIsNone( agency_user_case_from_voucher_fulfilled_by_id( None, CaseReminder(domain=self.domain, case_id=voucher.case_id) ) ) user = CommCareUser.create(self.domain, 'mobile', 'password') update_case(self.domain, voucher.case_id, case_properties={'voucher_fulfilled_by_id': user.get_id}) with create_user_case(user) as user_case: self.assertEqual( agency_user_case_from_voucher_fulfilled_by_id( None, CaseReminder(domain=self.domain, case_id=voucher.case_id) ).case_id, user_case.case_id )
def test_run_indicator_for_usercase(self): with create_user_case(self.user1) as case: with patch('custom.icds.messaging.custom_content.run_indicator_for_user') as patched: run_indicator_for_usercase(case, object) patched.assert_called_once() call_args = patched.call_args[0] self.assertTrue(isinstance(call_args[0], CommCareUser)) self.assertEqual(call_args[0].get_id, self.user1.get_id) self.assertEqual(call_args[1], object)
def test_prescription_voucher_alert_recipients(self): located_in_mehsana.clear(self.phi) self.dto.site_code = LOCATION_SITE_CODE_MEHSANA self.dto.save() self.assign_person_to_location(self.phi.location_id) prescription = self.create_prescription_case() voucher = self.create_voucher_case(prescription.case_id) user = CommCareUser.create(self.domain, 'mobile', 'password', location=self.phi) # No user case created yet result = prescription_voucher_alert_recipients( None, CaseReminder(domain=self.domain, case_id=voucher.case_id) ) self.assertTrue(isinstance(result, CommCareCaseSQL)) self.assertEqual(result.case_id, self.person_id) # Create user case with create_user_case(user) as user_case: result = prescription_voucher_alert_recipients( None, CaseReminder(domain=self.domain, case_id=voucher.case_id) ) self.assertTrue(isinstance(result, list)) self.assertEqual( [case.case_id for case in result], [self.person_id, user_case.case_id] ) # Test location outside Mehsana located_in_mehsana.clear(self.phi) self.dto.site_code = 'dto-other' self.dto.save() result = prescription_voucher_alert_recipients( None, CaseReminder(domain=self.domain, case_id=voucher.case_id) ) self.assertTrue(isinstance(result, CommCareCaseSQL)) self.assertEqual(result.case_id, self.person_id)
def test_is_usercase_of_ls(self): with create_user_case(self.aww) as aww_uc, create_user_case( self.ls) as ls_uc: self.assertFalse(is_usercase_of_ls(aww_uc, datetime.utcnow())) self.assertTrue(is_usercase_of_ls(ls_uc, datetime.utcnow()))