diff options
author | Tiago Gomes <tiago.gomes@codethink.co.uk> | 2015-12-04 17:54:52 +0000 |
---|---|---|
committer | Pedro Alvarez <pedro.alvarez@codethink.co.uk> | 2016-03-24 23:54:00 +0000 |
commit | 23b363c55c755f648ae38b61f09253860bfc61d3 (patch) | |
tree | e2d1a577b0048d11329db5f794c66ae1e800ef53 /morphlib/artifactresolver_tests.py | |
parent | 48e4a7941a4c1351076a2edf23274b41b19eab19 (diff) | |
download | morph-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/artifactresolver_tests.py')
-rw-r--r-- | morphlib/artifactresolver_tests.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/morphlib/artifactresolver_tests.py b/morphlib/artifactresolver_tests.py index 1ad9ba2d..a4924b37 100644 --- a/morphlib/artifactresolver_tests.py +++ b/morphlib/artifactresolver_tests.py @@ -45,7 +45,8 @@ def get_chunk_morphology(name, artifact_names=[]): text = yaml.dump({'name': name, 'kind': 'chunk'}, default_flow_style=False) - loader = morphlib.morphloader.MorphologyLoader() + schemas = morphlib.util.read_schemas() + loader = morphlib.morphloader.MorphologyLoader(schemas=schemas) morph = loader.load_from_string(text) return morph @@ -78,7 +79,8 @@ def get_stratum_morphology(name, chunks=[], build_depends=[]): "build-depends": build_depends_list}, default_flow_style=False) - loader = morphlib.morphloader.MorphologyLoader() + schemas = morphlib.util.read_schemas() + loader = morphlib.morphloader.MorphologyLoader(schemas=schemas) morph = loader.load_from_string(text) return morph @@ -248,7 +250,8 @@ class ArtifactResolverTests(unittest.TestCase): for dep in chunk_artifact.dependents)) def test_detection_of_mutual_dependency_between_two_strata(self): - loader = morphlib.morphloader.MorphologyLoader() + schemas = morphlib.util.read_schemas() + loader = morphlib.morphloader.MorphologyLoader(schemas=schemas) pool = morphlib.sourcepool.SourcePool() chunk = get_chunk_morphology('chunk1') @@ -290,8 +293,8 @@ class ArtifactResolverTests(unittest.TestCase): def test_handles_chunk_dependencies_out_of_invalid_order(self): pool = morphlib.sourcepool.SourcePool() - - loader = morphlib.morphloader.MorphologyLoader() + schemas = morphlib.util.read_schemas() + loader = morphlib.morphloader.MorphologyLoader(schemas=schemas) morph = loader.load_from_string( ''' name: stratum @@ -338,8 +341,8 @@ class ArtifactResolverTests(unittest.TestCase): def test_handles_invalid_chunk_dependencies(self): pool = morphlib.sourcepool.SourcePool() - - loader = morphlib.morphloader.MorphologyLoader() + schemas = morphlib.util.read_schemas() + loader = morphlib.morphloader.MorphologyLoader(schemas=schemas) morph = loader.load_from_string( ''' name: stratum |