def test_too_much_rope_no_error(self): case_property = "update" case_block_re = strip_xml(f""" <case case_id="CASE_ID" » date_modified="{DATETIME_PATTERN}" » xmlns="http://commcarehq.org/case/transaction/v2" /> """) self.assert_expected_case_block(case_property, case_block_re)
def test_delete_case_block_update_key(self): case_property = "openmrs_uuid" case_block_re = strip_xml(f""" <case case_id="CASE_ID" » date_modified="{DATETIME_PATTERN}" » xmlns="http://commcarehq.org/case/transaction/v2"> <update> <openmrs_uuid /> </update> </case> """) self.assert_expected_case_block(case_property, case_block_re)
def test_identifier_case_property_deleted(self, get_patient_mock, case_blocks_mock): """ CommCare should drop the case's patient ID when an OpenMRS patient is voided """ requests = None info = CaseTriggerInfo( domain=self.case.domain, case_id=self.case.case_id, type=self.case.type, name=self.case.name, extra_fields={ "external_id": self.case.external_id, }, ) openmrs_config = OpenmrsConfig.wrap({ "case_config": { "patient_finder": {}, "patient_identifiers": { "uuid": { "case_property": "external_id" }, }, "match_on_ids": ["uuid"], "person_properties": {}, "person_preferred_address": {}, "person_preferred_name": {}, }, "form_configs": [], }) voided_patient = self.get_json("voided_patient") get_patient_mock.return_value = voided_patient patient = get_patient(requests, DOMAIN, info, openmrs_config) self.assertEqual(info.extra_fields, {"external_id": None}) case_block_re = strip_xml(f""" <case case_id="123456" » date_modified="{DATETIME_PATTERN}" » xmlns="http://commcarehq.org/case/transaction/v2"> <update> <external_id /> </update> </case> """) case_block = case_blocks_mock.call_args[0][0][0] self.assertIsNotNone(re.match(case_block_re, case_block)) self.assertIsNone(patient)