Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
    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)