summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--morphlib/execute_tests.py23
-rw-r--r--morphlib/morphology.py7
-rw-r--r--morphlib/morphology_tests.py24
3 files changed, 17 insertions, 37 deletions
diff --git a/morphlib/execute_tests.py b/morphlib/execute_tests.py
index 0d785809..043b9e2c 100644
--- a/morphlib/execute_tests.py
+++ b/morphlib/execute_tests.py
@@ -35,17 +35,6 @@ class ExecuteTests(unittest.TestCase):
self.assertRaises(morphlib.execute.CommandFailure,
self.e.run, ['false'])
- def test_run_commandfailure_contains_both_stdout_and_stderr_output(self):
- try:
- self.e.run(['printf "%s%s\n" foo msg; '
- 'printf "%s%s" bar msg 1>&2; '
- 'exit 1'])
- except morphlib.execute.CommandFailure, e:
- self.assert_('foomsg' in str(e))
- self.assert_('barmsg' in str(e))
- else:
- self.assertTrue(False)
-
def test_returns_stdout_from_all_commands(self):
self.assertEqual(self.e.run(['echo foo', 'echo bar']),
['foo\n', 'bar\n'])
@@ -60,18 +49,6 @@ class ExecuteTests(unittest.TestCase):
self.assertRaises(morphlib.execute.CommandFailure,
self.e.runv, ['false'])
- def test_runv_commandfailure_contains_both_stdout_and_stderr_output(self):
- try:
- self.e.runv(['sh', '-c',
- 'printf "%s%s\n" foo msg; '
- 'printf "%s%s" bar msg 1>&2; '
- 'exit 1'])
- except morphlib.execute.CommandFailure, e:
- self.assert_('foomsg' in str(e))
- self.assert_('barmsg' in str(e))
- else:
- self.assertTrue(False)
-
def test_runv_sets_working_directory(self):
self.assertEqual(self.e.runv(['pwd']), '/\n')
diff --git a/morphlib/morphology.py b/morphlib/morphology.py
index 73387a9c..4fe6344a 100644
--- a/morphlib/morphology.py
+++ b/morphlib/morphology.py
@@ -32,10 +32,11 @@ class Morphology(object):
self._dict = json.load(self._fp)
if self.kind == 'stratum':
- for name, source in self.sources.iteritems():
+ for source in self.sources:
if 'repo' not in source:
- source['repo'] = name
- source['repo'] = self._join_with_baseurl(source['repo'])
+ source['repo'] = source['name']
+ repo = self._join_with_baseurl(source['repo'])
+ source['repo'] = unicode(repo)
self.filename = self._fp.name
diff --git a/morphlib/morphology_tests.py b/morphlib/morphology_tests.py
index a19c5f90..d1e052a8 100644
--- a/morphlib/morphology_tests.py
+++ b/morphlib/morphology_tests.py
@@ -100,18 +100,19 @@ class MorphologyTests(unittest.TestCase):
"name": "hello",
"kind": "stratum",
"sources":
- {
- "foo": {
+ [
+ {
+ "name": "foo",
"ref": "ref"
}
- }
+ ]
}'''))
self.assertEqual(morph.kind, 'stratum')
self.assertEqual(morph.filename, 'mockfile')
self.assertEqual(morph.sources,
- {
- 'foo': { 'repo': 'foo/', 'ref': 'ref' },
- })
+ [
+ { 'name': 'foo', 'repo': 'foo/', 'ref': 'ref' },
+ ])
def test_accepts_valid_system_morphology(self):
morph = morphlib.morphology.Morphology(
@@ -139,22 +140,23 @@ class StratumRepoTests(unittest.TestCase):
"name": "hello",
"kind": "stratum",
"sources":
- {
- "foo": {
+ [
+ {
+ "name": "foo",
"repo": "%s",
"ref": "HEAD"
}
- }
+ ]
}''' % repo),
baseurl='git://git.baserock.org/')
def test_leaves_absolute_repo_in_source_dict_as_is(self):
stratum = self.stratum('git://git.baserock.org/foo/')
- self.assertEqual(stratum.sources['foo']['repo'],
+ self.assertEqual(stratum.sources[0]['repo'],
'git://git.baserock.org/foo/')
def test_makes_relative_repo_url_absolute_in_source_dict(self):
stratum = self.stratum('foo')
- self.assertEqual(stratum.sources['foo']['repo'],
+ self.assertEqual(stratum.sources[0]['repo'],
'git://git.baserock.org/foo/')