diff options
-rw-r--r-- | morphlib/morphology.py | 6 | ||||
-rw-r--r-- | morphlib/morphology_tests.py | 14 |
2 files changed, 20 insertions, 0 deletions
diff --git a/morphlib/morphology.py b/morphlib/morphology.py index 86658fb8..903df472 100644 --- a/morphlib/morphology.py +++ b/morphlib/morphology.py @@ -51,6 +51,8 @@ class Morphology(object): self._validate_stratum() for source in self.sources.itervalues(): source['repo'] = self._join_with_baseurl(source['repo']) + elif self.kind == 'system': + pass else: raise self._error('kind must be chunk or stratum, not %s' % self.kind) @@ -142,6 +144,10 @@ class Morphology(object): def install_commands(self): return self._dict.get('install-commands', []) + @property + def strata(self): + return self._dict.get('strata', []) + def _join_with_baseurl(self, url): is_relative = (':' not in url or '/' not in url or diff --git a/morphlib/morphology_tests.py b/morphlib/morphology_tests.py index d7e256dd..2982bb27 100644 --- a/morphlib/morphology_tests.py +++ b/morphlib/morphology_tests.py @@ -374,6 +374,20 @@ class MorphologyTests(unittest.TestCase): self.assertEqual(morph.kind, 'stratum') self.assertEqual(morph.filename, 'mockfile') + def test_accepts_valid_system_morphology(self): + morph = morphlib.morphology.Morphology( + MockFile(''' + { + "name": "hello", + "kind": "system", + "strata": [ + "foo", + "bar" + ] + }''')) + self.assertEqual(morph.kind, 'system') + self.assertEqual(morph.strata, ['foo', 'bar']) + class StratumRepoTests(unittest.TestCase): |