summaryrefslogtreecommitdiff
path: root/morphlib/morph2_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/morph2_tests.py')
-rw-r--r--morphlib/morph2_tests.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/morphlib/morph2_tests.py b/morphlib/morph2_tests.py
index 9de23e56..bf32d3c2 100644
--- a/morphlib/morph2_tests.py
+++ b/morphlib/morph2_tests.py
@@ -379,3 +379,61 @@ class MorphologyTests(unittest.TestCase):
''')
cmds = m.get_commands('build-commands')
self.assertEqual(cmds, [])
+
+ ## Cluster morphologies tests
+
+ def test_parses_simple_cluster_morph(self):
+ m = Morphology('''
+ name: foo
+ kind: cluster
+ systems:
+ - morph: bar
+ ''')
+ self.assertEqual(m['name'], 'foo')
+ self.assertEqual(m['kind'], 'cluster')
+ self.assertEqual(m['systems'][0]['morph'], 'bar')
+
+ def test_fails_without_systems(self):
+ text = '''
+ name: foo
+ kind: cluster
+ '''
+ self.assertRaises(KeyError, Morphology, text)
+
+ def test_fails_with_empty_systems(self):
+ text = '''
+ name: foo
+ kind: cluster
+ systems:
+ '''
+ self.assertRaises(ValueError, Morphology, text)
+
+ def test_fails_without_morph(self):
+ text = '''
+ name: foo
+ kind: cluster
+ systems:
+ - deploy:
+ '''
+ self.assertRaises(KeyError, Morphology, text)
+
+ def test_fails_with_invalid_deploy_defaults(self):
+ text = '''
+ name: foo
+ kind: cluster
+ systems:
+ - morph: bar
+ deploy-defaults: ooops_i_am_not_a_mapping
+ '''
+ self.assertRaises(ValueError, Morphology, text)
+
+ def test_fails_with_invalid_deployment_params(self):
+ text = '''
+ name: foo
+ kind: cluster
+ systems:
+ - morph: bar
+ deploy:
+ qux: ooops_i_am_not_a_mapping
+ '''
+ self.assertRaises(ValueError, Morphology, text)