def test_decode_null_content(immutable_keyed_list_schema, decode_mapping): """Content that is explicitly null is decoded.""" composite = Composite(immutable_keyed_list_schema) content: Dict = {"x": {"inner_folder": {"nombre": None}}} expected: Dict = {"x": {"name": None}} actual: Dict = composite.decode_keyed_list(decode_mapping, content) assert actual == expected
def test_decode_keyed_list(immutable_keyed_list_schema, decode_mapping): """Both mappings and content present.""" composite = Composite(immutable_keyed_list_schema) content: Dict = { "al": { "inner_folder": { "nombre": "Al", "edad": 25 }, "helado": "Rocky road" }, "joe": { "inner_folder": { "nombre": "Joe", "edad": 34 }, "helado": "Clam chowder" } } expected: Dict = { "al": { "name": "Al", "age": 25, "ice cream": "Rocky road" }, "joe": { "name": "Joe", "age": 34, "ice cream": "Clam chowder" # https://now.tufts.edu/articles/dish-we-all-scream-for-ice-cream } } actual: Dict = composite.decode_keyed_list(decode_mapping, content) assert actual == expected
def test_decode_keyed_list_multiple_empty(immutable_keyed_list_schema, decode_mapping): """Mappings present, no content.""" composite = Composite(immutable_keyed_list_schema) content: Dict = {"x": {}, "y": {}, "z": {}} expected: Dict = content.copy() actual: Dict = composite.decode_keyed_list(decode_mapping, content) assert actual == expected
def test_decode_missing_content_skips(immutable_keyed_list_schema, decode_mapping): """If something isn't present in a content list item that is defined in the mappings, skip it.""" composite = Composite(immutable_keyed_list_schema) content: Dict = { "al": { "helado": "Rocky road" }, "joe": { "inner_folder": { "nombre": "Joe" } } } expected: Dict = { "al": { "ice cream": "Rocky road" }, "joe": { "name": "Joe", } } actual: Dict = composite.decode_keyed_list(decode_mapping, content) assert actual == expected
def test_decode_keyed_list_zero_length(immutable_keyed_list_schema, decode_mapping): """Mappings present, no content.""" composite = Composite(immutable_keyed_list_schema) actual: Dict = composite.decode_keyed_list(decode_mapping, {}) assert actual == {}
def test_decode_keyed_list_trivial(trivial_schema): """No mappings, no content""" composite = Composite(trivial_schema) actual: Dict = composite.decode_keyed_list({}, {}) assert actual == {}