Fixed double shift implementation. Added implicit renaming

This commit is contained in:
2025-07-24 21:42:13 +02:00
parent 34f959812b
commit 1ceddfac7c
3 changed files with 34 additions and 1 deletions

View File

@@ -14,6 +14,18 @@ def test_i_can_present_static_mappings():
assert actual == Expando({"renamed_1": "value1", "field2": "value2"}) # field3 is removed
def test_i_can_present_implicit_renaming():
mappings_def = "root.field1="
presenter = DefaultDataPresenter("comp_id", mappings_def)
as_dict = {"root": {"field1": "value1"}}
data = Expando(as_dict)
actual = presenter.present(data)
assert isinstance(actual, Expando)
assert actual.as_dict() == {"field1": "value1"}
def test_the_latter_mappings_take_precedence():
mappings_def = "field1 = renamed_1 , field1 "
presenter = DefaultDataPresenter("comp_id", mappings_def)
@@ -105,6 +117,23 @@ def test_i_can_present_dynamic_mappings_with_sub_fields_and_renames():
"field4": "value4"}
def test_i_can_present_dynamic_mappings_with_sub_fields_and_implicit_renames():
mappings_def = "root.sub_field.*="
presenter = DefaultDataPresenter("comp_id", mappings_def)
as_dict = {"root": {"field1": "value1",
"field2": "value2",
"sub_field": {"field3": "value3",
"field4": "value4"
}}}
data = Expando(as_dict)
actual = presenter.present(data)
assert isinstance(actual, Expando)
assert actual.as_dict() == {"field3": "value3",
"field4": "value4"}
def test_i_can_present_dynamic_mappings_and_rename_them():
mappings_def = "*=*" # does not really have effects as '*' only goes down one level
presenter = DefaultDataPresenter("comp_id", mappings_def)