def test_blank_path(self): json_doc = {"foo": {"bar": "baz"}} value_source = as_value_source({ "case_property": "bar", "jsonpath": "", }) with self.assertRaises(JsonpathError): value_source.get_import_value(json_doc)
def test_many_values(self): json_doc = {"foo": [{"bar": "baz"}, {"bar": "qux"}]} value_source = as_value_source({ "case_property": "bar", "jsonpath": "foo[*].bar", }) external_value = value_source.get_import_value(json_doc) self.assertEqual(external_value, ["baz", "qux"])
def test_one_value(self): json_doc = {"foo": {"bar": "baz"}} value_source = as_value_source({ "case_property": "bar", "jsonpath": "foo.bar", }) external_value = value_source.get_import_value(json_doc) self.assertEqual(external_value, "baz")
def test_no_values(self): json_doc = {"foo": {"bar": "baz"}} value_source = as_value_source({ "case_property": "bar", "jsonpath": "foo.qux", }) external_value = value_source.get_import_value(json_doc) self.assertIsNone(external_value)
def test_one_value(self): json_doc = {"foo": {"bar": "baz"}} value_source = CasePropertyConstantValue.wrap({ "value": "qux", "jsonpath": "foo.bar", }) external_value = value_source.get_import_value(json_doc) self.assertEqual(external_value, "qux")
def get_case_block_kwargs_for_case_property( mapping: ObservationMapping, external_data: dict, fallback_value: Any, ) -> dict: case_block_kwargs = {"update": {}} try: value = get_import_value(mapping.value, external_data) except (ConfigurationError, JsonpathError): # mapping.value isn't configured to parse external_data value = deserialize(mapping.value, fallback_value) if mapping.case_property in CASE_BLOCK_ARGS: case_block_kwargs[mapping.case_property] = value else: case_block_kwargs["update"][mapping.case_property] = value return case_block_kwargs