summaryrefslogtreecommitdiff
path: root/morphlib/source_tests.py
diff options
context:
space:
mode:
authorTiago Gomes <tiago.gomes@codethink.co.uk>2015-12-04 17:54:52 +0000
committerPedro Alvarez <pedro.alvarez@codethink.co.uk>2016-03-24 23:54:00 +0000
commit23b363c55c755f648ae38b61f09253860bfc61d3 (patch)
treee2d1a577b0048d11329db5f794c66ae1e800ef53 /morphlib/source_tests.py
parent48e4a7941a4c1351076a2edf23274b41b19eab19 (diff)
downloadmorph-23b363c55c755f648ae38b61f09253860bfc61d3.tar.gz
Use jsonschema to validate the morphs
Use jsonschema to do a first stage of validation of the morphologies. Example error messages: ERROR: strata/core.morph: core->build-depends: 'foo' is not of type 'array' ERROR: strata/core.morph: core: 'name' is a required property ERROR: strata/core.morph: core: Additional properties are not allowed ('extra-field' was unexpected) ERROR: strata/core.morph: core->chunks[0]->name: 1111 is not of type 'string' ERROR: strata/core.morph: core->chunks[0]: 'repo' is a required property on {'morph': 'strata/core/gdbm.morph', 'ref': 'e5faeaaf75ecfb705a9b643b3e4cb881ebb69f48', 'unpetrify-ref': 'gdbm-1.11', 'name': 'gdbm'} ERROR: strata/core.morph: core->chunks[0]: Additional properties are not allowed ('extra-field' was unexpected) on {'repo': 'upstream:gdbm-tarball', 'extra-field': None, 'name': 'gdbm', 'morph': 'strata/core/gdbm.morph', 'ref': 'e5faeaaf75ecfb705a9b643b3e4cb881ebb69f48', 'unpetrify-ref': 'gdbm-1.11'} Change-Id: If9fd488e16db35130d074492a93754a447ea98e1
Diffstat (limited to 'morphlib/source_tests.py')
-rw-r--r--morphlib/source_tests.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/morphlib/source_tests.py b/morphlib/source_tests.py
index 4f6006e9..6bf09806 100644
--- a/morphlib/source_tests.py
+++ b/morphlib/source_tests.py
@@ -30,7 +30,9 @@ class SourceTests(unittest.TestCase):
self.original_ref = 'original/ref'
self.sha1 = 'CAFEF00D'
self.tree = 'F000000D'
- loader = morphlib.morphloader.MorphologyLoader()
+
+ schemas = morphlib.util.read_schemas()
+ loader = morphlib.morphloader.MorphologyLoader(schemas=schemas)
self.morphology = loader.load_from_string(self.morphology_text)
self.filename = 'foo.morph'
self.source, = morphlib.source.make_sources(self.repo_name,