diff options
author | Tristan Maat <tristan.maat@codethink.co.uk> | 2017-09-06 16:52:26 +0100 |
---|---|---|
committer | Tristan Maat <tristan.maat@codethink.co.uk> | 2017-09-13 17:10:10 +0100 |
commit | 06b4d3aeae88a30d922cd044feaf9f255946fe55 (patch) | |
tree | 0c0ab31cd4339fbe5d6bea24831c45056afa616d /tests/yaml | |
parent | 5b995dd1543b9476abfe6f1d42dc43cd5d0ea7dc (diff) | |
download | buildstream-06b4d3aeae88a30d922cd044feaf9f255946fe55.tar.gz |
Add _yaml.validate_node
Diffstat (limited to 'tests/yaml')
-rw-r--r-- | tests/yaml/data/invalid.yaml | 8 | ||||
-rw-r--r-- | tests/yaml/yaml.py | 22 |
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/yaml/data/invalid.yaml b/tests/yaml/data/invalid.yaml new file mode 100644 index 000000000..bc7f1ae22 --- /dev/null +++ b/tests/yaml/data/invalid.yaml @@ -0,0 +1,8 @@ +kind: pony +description: The vehicle of choice for rainbow travel +mods: + - happy + - sad +children: + - naam: dopey + mood: silly diff --git a/tests/yaml/yaml.py b/tests/yaml/yaml.py index ec632674f..e972f89f4 100644 --- a/tests/yaml/yaml.py +++ b/tests/yaml/yaml.py @@ -163,6 +163,28 @@ def test_composited_array_append_provenance(datafiles): @pytest.mark.datafiles(os.path.join(DATA_DIR)) +def test_validate_node(datafiles): + + valid = os.path.join(datafiles.dirname, + datafiles.basename, + 'basics.yaml') + invalid = os.path.join(datafiles.dirname, + datafiles.basename, + 'invalid.yaml') + + base = _yaml.load(valid) + + _yaml.validate_node(base, ['kind', 'description', 'moods', 'children', 'extra']) + + base = _yaml.load(invalid) + + with pytest.raises(LoadError) as exc: + _yaml.validate_node(base, ['kind', 'description', 'moods', 'children', 'extra']) + + assert (exc.value.reason == LoadErrorReason.INVALID_DATA) + + +@pytest.mark.datafiles(os.path.join(DATA_DIR)) def test_node_get(datafiles): filename = os.path.join(datafiles.dirname, |