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)
Esempio n. 5
0
 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")
Esempio n. 6
0
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