diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/yaml/data/listoverwriteempty.yaml | 3 | ||||
-rw-r--r-- | tests/yaml/yaml.py | 14 |
2 files changed, 17 insertions, 0 deletions
diff --git a/tests/yaml/data/listoverwriteempty.yaml b/tests/yaml/data/listoverwriteempty.yaml new file mode 100644 index 000000000..f97a1eafe --- /dev/null +++ b/tests/yaml/data/listoverwriteempty.yaml @@ -0,0 +1,3 @@ +# Composited on top of basics.yaml, effectively deleting its children list +children: + (=): [] diff --git a/tests/yaml/yaml.py b/tests/yaml/yaml.py index 0aae28f08..a462e18df 100644 --- a/tests/yaml/yaml.py +++ b/tests/yaml/yaml.py @@ -213,6 +213,20 @@ def test_list_composition(datafiles, filename, assert_provenance(prov_file, prov_line, prov_col, child, 'mood') +# Test that overwriting a list with an empty list works as expected. +@pytest.mark.datafiles(os.path.join(DATA_DIR)) +def test_list_deletion(datafiles): + base = os.path.join(datafiles.dirname, datafiles.basename, 'basics.yaml') + overlay = os.path.join(datafiles.dirname, datafiles.basename, 'listoverwriteempty.yaml') + + base = _yaml.load(base, shortname='basics.yaml') + overlay = _yaml.load(overlay, shortname='listoverwriteempty.yaml') + _yaml.composite_dict(base, overlay) + + children = _yaml.node_get(base, list, 'children') + assert len(children) == 0 + + # Tests for deep list composition # # Same as test_list_composition(), but adds an additional file |