summaryrefslogtreecommitdiff
path: root/morphlib/morphloader_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/morphloader_tests.py')
-rw-r--r--morphlib/morphloader_tests.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/morphlib/morphloader_tests.py b/morphlib/morphloader_tests.py
index 43c0b7fd..78eb085a 100644
--- a/morphlib/morphloader_tests.py
+++ b/morphlib/morphloader_tests.py
@@ -87,6 +87,63 @@ class MorphologyLoaderTests(unittest.TestCase):
morphlib.morphloader.MorphologyValidationError,
self.loader.load_from_string, 'kind: chunk', 'test')
+ def test_fails_to_validate_stratum_with_a_missing_path(self):
+ m = morphlib.morphology.Morphology({
+ 'kind': 'stratum',
+ 'name': 'foo',
+ 'build-depends': [],
+ 'chunks': [
+ {
+ 'name': 'chunk',
+ 'repo': 'test:repo',
+ 'ref': 'master',
+ 'build-system': 'manual',
+ 'build-depends': [],
+ 'extra-sources':
+ [
+ {
+ 'repo': 'foo',
+ 'path': 'somepath',
+ 'extra-sources':
+ [
+ {
+ 'repo': 'bar',
+ 'ref': 'master'
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ })
+ self.assertRaises(
+ morphlib.morphloader.MissingFieldError, self.loader.validate, m)
+
+ def test_fails_to_validate_stratum_with_invalid_path(self):
+ m = morphlib.morphology.Morphology({
+ 'kind': 'stratum',
+ 'name': 'foo',
+ 'build-depends': [],
+ 'chunks': [
+ {
+ 'name': 'chunk',
+ 'repo': 'test:repo',
+ 'ref': 'master',
+ 'build-system': 'manual',
+ 'build-depends': [],
+ 'extra-sources':
+ [
+ {
+ 'repo': 'foo',
+ 'path': '../foo'
+ }
+ ]
+ }
+ ]
+ })
+ self.assertRaises(
+ morphlib.morphloader.InvalidPathError, self.loader.validate, m)
+
def test_fails_to_validate_stratum_which_build_depends_on_self(self):
text = '''
name: bad-stratum
@@ -309,6 +366,7 @@ class MorphologyLoaderTests(unittest.TestCase):
pre-strip-commands:
post-strip-commands:
+ extra-sources: []
products: []
system-integration: []
devices: []
@@ -341,6 +399,7 @@ class MorphologyLoaderTests(unittest.TestCase):
morph: bar
build-mode: bootstrap
build-depends: []
+ extra-sources: []
prefix: '/usr'
products: []
'''))