from owslib.dictutil import exclude, flatten def test_flatten() -> None: actual = flatten( { "a": {"b": {"c": {"d": "e"}}}, "f": 1, "g": [1, 2, 3], "h": {"i": 1, "j": 2}, } ) assert actual == { "a.b.c.d": "e", "f": 1, "g": [1, 2, 3], "h.i": 1, "h.j": 2, } def test_flatten_with_indexes() -> None: actual = flatten( { 0: {"name": "test1"}, 1: {"name": "test2"}, } ) assert actual == { "0.name": "test1", "1.name": "test2", } def test_exclude() -> None: actual = exclude( {"user": "admin", "pass": "secret", "host": "localhost"}, keys=["pass"], ) assert actual == {"user": "admin", "host": "localhost"}