summaryrefslogtreecommitdiff
path: root/tests/yaml
diff options
context:
space:
mode:
authorTristan Maat <tristan.maat@codethink.co.uk>2017-09-06 16:52:26 +0100
committerTristan Maat <tristan.maat@codethink.co.uk>2017-09-13 17:10:10 +0100
commit06b4d3aeae88a30d922cd044feaf9f255946fe55 (patch)
tree0c0ab31cd4339fbe5d6bea24831c45056afa616d /tests/yaml
parent5b995dd1543b9476abfe6f1d42dc43cd5d0ea7dc (diff)
downloadbuildstream-06b4d3aeae88a30d922cd044feaf9f255946fe55.tar.gz
Add _yaml.validate_node
Diffstat (limited to 'tests/yaml')
-rw-r--r--tests/yaml/data/invalid.yaml8
-rw-r--r--tests/yaml/yaml.py22
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,