diff options
author | Pedro Alvarez <pedro.alvarez@codethink.co.uk> | 2016-03-26 18:59:01 +0000 |
---|---|---|
committer | Pedro Alvarez <pedro.alvarez@codethink.co.uk> | 2016-03-26 19:27:19 +0000 |
commit | 45e39e81698df91251c7fac5a642e211e98d834b (patch) | |
tree | f4d2fa2774dd29f302617002bd8da417928a1408 /morphlib/morphloader_tests.py | |
parent | 9404317020ff0455cbfd3ca7976d546af823759b (diff) | |
download | morph-baserock/pedroalvarez/defv8-submodules-squashed.tar.gz |
Add support for definitions version 8baserock/pedroalvarez/defv8-submodules-squashed
This code is a rework from changes done by:
- Tiago Gomes <tiago.gomes@codethink.co.uk>
https://storyboard.baserock.org/#!/story/86
Change-Id: I3475c2bcb648a272fee33bc878a521f79d4e6581
Diffstat (limited to 'morphlib/morphloader_tests.py')
-rw-r--r-- | morphlib/morphloader_tests.py | 98 |
1 files changed, 90 insertions, 8 deletions
diff --git a/morphlib/morphloader_tests.py b/morphlib/morphloader_tests.py index db22264f..b5d3f568 100644 --- a/morphlib/morphloader_tests.py +++ b/morphlib/morphloader_tests.py @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2015 Codethink Limited +# Copyright (C) 2013-2016 Codethink Limited # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -208,7 +208,42 @@ build-system: manual self.assertRaises( morphlib.morphloader.InvalidFieldError, self.loader.validate, m) - def test_validate_requires_chunk_refs_in_stratum_to_be_strings(self): + def test_validate_requires_chunk_repos_to_exist(self): + m = morphlib.morphology.Morphology({ + 'kind': 'stratum', + 'name': 'foo', + 'build-depends': [], + 'chunks': [ + { + 'name': 'chunk', + 'ref': 'master', + 'build-depends': [] + } + ] + }) + with self.assertRaises( + morphlib.morphloader.MissingFieldError): + self.loader.validate(m) + + def test_validate_requires_chunk_repos_in_stratum_to_be_strings(self): + m = morphlib.morphology.Morphology({ + 'kind': 'stratum', + 'name': 'foo', + 'build-depends': [], + 'chunks': [ + { + 'name': 'chunk', + 'repo': 1, + 'ref': 'master', + 'build-depends': [] + } + ] + }) + with self.assertRaises( + morphlib.morphloader.InvalidStringError): + self.loader.validate(m) + + def test_validate_requires_chunk_refs_to_exist(self): m = morphlib.morphology.Morphology({ 'kind': 'stratum', 'name': 'foo', @@ -217,33 +252,78 @@ build-system: manual { 'name': 'chunk', 'repo': 'test:repo', - 'ref': 1, 'build-depends': [] } ] }) with self.assertRaises( - morphlib.morphloader.ChunkSpecRefNotStringError): + morphlib.morphloader.MissingFieldError): self.loader.validate(m) - def test_fails_to_validate_stratum_with_empty_refs_for_a_chunk(self): + def test_validate_requires_chunk_refs_in_stratum_to_be_strings(self): m = morphlib.morphology.Morphology({ 'kind': 'stratum', 'name': 'foo', 'build-depends': [], - 'chunks' : [ + 'chunks': [ { 'name': 'chunk', 'repo': 'test:repo', - 'ref': None, + 'ref': 1, 'build-depends': [] } ] }) with self.assertRaises( - morphlib.morphloader.EmptyRefError): + morphlib.morphloader.InvalidStringError): self.loader.validate(m) + def test_fails_to_validate_stratum_with_a_missing_url(self): + m = morphlib.morphology.Morphology({ + 'kind': 'stratum', + 'name': 'foo', + 'build-depends': [], + 'chunks': [ + { + 'name': 'chunk', + 'repo': 'test:repo', + 'ref': 'master', + 'build-system': 'manual', + 'build-depends': [], + 'submodules': + { + 'foolib': {} + } + } + ] + }) + self.assertRaises( + morphlib.morphloader.MissingFieldError, self.loader.validate, m) + + def test_fails_to_validate_stratum_with_no_dict_submodules(self): + m = morphlib.morphology.Morphology({ + 'kind': 'stratum', + 'name': 'foo', + 'build-depends': [], + 'chunks': [ + { + 'name': 'chunk', + 'repo': 'test:repo', + 'ref': 'master', + 'build-system': 'manual', + 'build-depends': [], + 'submodules': + [ + { + 'foolib': {} + } + ] + } + ] + }) + self.assertRaises( + morphlib.morphloader.NotADictionaryError, self.loader.validate, m) + def test_fails_to_validate_stratum_which_build_depends_on_self(self): text = '''\ name: bad-stratum @@ -567,6 +647,7 @@ build-system: manual 'pre-strip-commands': None, 'post-strip-commands': None, + 'submodules': {}, 'products': [], 'system-integration': [], 'devices': [], @@ -606,6 +687,7 @@ build-system: manual "morph": "bar", 'build-mode': 'bootstrap', 'build-depends': [], + 'submodules': {}, 'prefix': '/usr', }, ], |