summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJannis Pohlmann <jannis.pohlmann@codethink.co.uk>2012-04-18 10:52:39 +0100
committerJannis Pohlmann <jannis.pohlmann@codethink.co.uk>2012-04-18 13:34:25 +0100
commitad31f7608febab04157e015a90f5047a6f0d8d83 (patch)
tree0ac0885cd6e77783a0251ed67ad03f3834679d00
parent48732135d4536880e5459e3064cce9cfa63d6abe (diff)
downloadmorph-ad31f7608febab04157e015a90f5047a6f0d8d83.tar.gz
Add a repo_name to Source, use that instead of repo in most places.
This is because we will need to integrate a RemoteRepoCache and we don't always want to create a CachedRepo object (in fact, we only want that for the sources of artifacts we actually need to build). So we'll use either the local or the remote repo cache to resolve refs and morphology texts and then later, when actually caching a repo, we'll set the source.repo member to a CachedRepo object that we can then use to unpack the sources.
-rwxr-xr-xmorph3
-rw-r--r--morphlib/artifactresolver.py4
-rw-r--r--morphlib/artifactresolver_tests.py86
-rw-r--r--morphlib/buildgraph.py4
-rw-r--r--morphlib/buildgraph_tests.py83
-rw-r--r--morphlib/cachekeycomputer_tests.py3
-rw-r--r--morphlib/source.py8
-rw-r--r--morphlib/source_tests.py21
-rw-r--r--morphlib/sourcepool.py10
-rw-r--r--morphlib/sourcepool_tests.py7
10 files changed, 115 insertions, 114 deletions
diff --git a/morph b/morph
index a5d9f4e0..44c85b34 100755
--- a/morph
+++ b/morph
@@ -166,8 +166,9 @@ class Morph(cliapp.Application):
for x in morphology['sources']:
queue.append((x['repo'], x['ref'],
'%s.morph' % x['morph']))
- source = morphlib.source.Source(repo, ref, absref,
+ source = morphlib.source.Source(reponame, ref, absref,
morphology, filename)
+ source.repo = repo
pool.add(source)
return pool
diff --git a/morphlib/artifactresolver.py b/morphlib/artifactresolver.py
index 56da8e8c..df3fdf87 100644
--- a/morphlib/artifactresolver.py
+++ b/morphlib/artifactresolver.py
@@ -157,7 +157,7 @@ class ArtifactResolver(object):
for stratum_name in system.source.morphology['strata']:
source = self._source_pool.lookup(
- system.source.repo.original_name,
+ system.source.repo_name,
system.source.original_ref,
'%s.morph' % stratum_name)
@@ -179,7 +179,7 @@ class ArtifactResolver(object):
if stratum.source.morphology['build-depends']:
for stratum_name in stratum.source.morphology['build-depends']:
other_source = self._source_pool.lookup(
- stratum.source.repo.original_name,
+ stratum.source.repo_name,
stratum.source.original_ref,
'%s.morph' % stratum_name)
diff --git a/morphlib/artifactresolver_tests.py b/morphlib/artifactresolver_tests.py
index eba8c80a..d77ff5bb 100644
--- a/morphlib/artifactresolver_tests.py
+++ b/morphlib/artifactresolver_tests.py
@@ -94,8 +94,6 @@ class FakeStratumMorphology(morphlib.morph2.Morphology):
class ArtifactResolverTests(unittest.TestCase):
def setUp(self):
- self.repo = morphlib.cachedrepo.CachedRepo(
- 'repo', 'git://foo.bar/repo.git', '/foo/bar/repo')
self.cache_key_computer = FakeCacheKeyComputer()
self.resolver = morphlib.artifactresolver.ArtifactResolver(
self.cache_key_computer)
@@ -110,7 +108,7 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeChunkMorphology('chunk')
source = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'ref', 'sha1', morph, 'chunk.morph')
pool.add(source)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -128,7 +126,7 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeChunkMorphology('chunk', ['chunk-runtime'])
source = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'ref', 'sha1', morph, 'chunk.morph')
pool.add(source)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -145,7 +143,7 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeChunkMorphology('chunk', ['chunk-runtime', 'chunk-devel'])
source = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'ref', 'sha1', morph, 'chunk.morph')
pool.add(source)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -175,7 +173,7 @@ class ArtifactResolverTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'foo.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'foo.morph')
pool.add(stratum)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -197,7 +195,7 @@ class ArtifactResolverTests(unittest.TestCase):
}
''')
system = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'foo.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'foo.morph')
pool.add(system)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -213,13 +211,13 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeChunkMorphology('chunk')
chunk = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'ref', 'sha1', morph, 'chunk.morph')
pool.add(chunk)
morph = FakeStratumMorphology(
'stratum', [('chunk', 'chunk', 'repo', 'ref')])
stratum = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -243,7 +241,7 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeChunkMorphology('chunk', ['chunk-devel', 'chunk-runtime'])
chunk = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'ref', 'sha1', morph, 'chunk.morph')
pool.add(chunk)
morph = FakeStratumMorphology(
@@ -252,7 +250,7 @@ class ArtifactResolverTests(unittest.TestCase):
('chunk-runtime', 'chunk', 'repo', 'ref')
])
stratum = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -283,7 +281,7 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeChunkMorphology('chunk', ['chunk-devel', 'chunk-runtime'])
chunk = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'ref', 'sha1', morph, 'chunk.morph')
pool.add(chunk)
morph = FakeStratumMorphology(
@@ -291,7 +289,7 @@ class ArtifactResolverTests(unittest.TestCase):
('chunk-runtime', 'chunk', 'repo', 'ref')
])
stratum = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -315,12 +313,12 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeChunkMorphology('foo')
foo_chunk = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'foo.morph')
+ 'repo', 'ref', 'sha1', morph, 'foo.morph')
pool.add(foo_chunk)
morph = FakeChunkMorphology('bar')
bar_chunk = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'bar.morph')
+ 'repo', 'ref', 'sha1', morph, 'bar.morph')
pool.add(bar_chunk)
morph = FakeStratumMorphology(
@@ -329,7 +327,7 @@ class ArtifactResolverTests(unittest.TestCase):
('bar', 'bar', 'repo', 'ref')
])
stratum = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -360,12 +358,12 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeStratumMorphology('stratum1')
stratum1 = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'stratum1.morph')
+ 'repo', 'ref', 'sha1', morph, 'stratum1.morph')
pool.add(stratum1)
morph = FakeStratumMorphology('stratum2', [], ['stratum1'])
stratum2 = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'stratum2.morph')
+ 'repo', 'ref', 'sha1', morph, 'stratum2.morph')
pool.add(stratum2)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -389,7 +387,7 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeStratumMorphology('stratum1')
stratum1 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum1.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum1.morph')
pool.add(stratum1)
morph = FakeStratumMorphology(
@@ -398,17 +396,17 @@ class ArtifactResolverTests(unittest.TestCase):
('chunk2', 'chunk2', 'repo', 'original/ref')
], ['stratum1'])
stratum2 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum2.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum2.morph')
pool.add(stratum2)
morph = FakeChunkMorphology('chunk1')
chunk1 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk1.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk1.morph')
pool.add(chunk1)
morph = FakeChunkMorphology('chunk2')
chunk2 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk2.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk2.morph')
pool.add(chunk2)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -447,7 +445,7 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeStratumMorphology('stratum1')
stratum1 = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'stratum1.morph')
+ 'repo', 'ref', 'sha1', morph, 'stratum1.morph')
pool.add(stratum1)
morph = morphlib.morph2.Morphology(
@@ -462,12 +460,12 @@ class ArtifactResolverTests(unittest.TestCase):
}
''')
system = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'system.morph')
+ 'repo', 'ref', 'sha1', morph, 'system.morph')
pool.add(system)
morph = FakeStratumMorphology('stratum2', [], ['stratum1'])
stratum2 = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'stratum2.morph')
+ 'repo', 'ref', 'sha1', morph, 'stratum2.morph')
pool.add(stratum2)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -527,22 +525,22 @@ class ArtifactResolverTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
morph = FakeChunkMorphology('chunk1')
chunk1 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk1.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk1.morph')
pool.add(chunk1)
morph = FakeChunkMorphology('chunk2')
chunk2 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk2.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk2.morph')
pool.add(chunk2)
morph = FakeChunkMorphology('chunk3')
chunk3 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk3.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk3.morph')
pool.add(chunk3)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -581,7 +579,7 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeChunkMorphology('chunk')
chunk = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'ref', 'sha1', morph, 'chunk.morph')
pool.add(chunk)
morph = FakeStratumMorphology(
@@ -589,7 +587,7 @@ class ArtifactResolverTests(unittest.TestCase):
('chunk-runtime', 'chunk', 'repo', 'ref')
])
stratum = morphlib.source.Source(
- self.repo, 'ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
self.assertRaises(
@@ -601,12 +599,12 @@ class ArtifactResolverTests(unittest.TestCase):
morph = FakeStratumMorphology('stratum1', [], ['stratum2'])
stratum1 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum1.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum1.morph')
pool.add(stratum1)
morph = FakeStratumMorphology('stratum2', [], ['stratum1'])
stratum2 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum2.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum2.morph')
pool.add(stratum2)
self.assertRaises(morphlib.artifactresolver.MutualDependencyError,
@@ -621,7 +619,7 @@ class ArtifactResolverTests(unittest.TestCase):
('chunk2', 'chunk2', 'repo', 'original/ref')
], [])
stratum1 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum1.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum1.morph')
pool.add(stratum1)
morph = FakeStratumMorphology(
@@ -630,17 +628,17 @@ class ArtifactResolverTests(unittest.TestCase):
('chunk1', 'chunk1', 'repo', 'original/ref')
], ['stratum1'])
stratum2 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum2.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum2.morph')
pool.add(stratum2)
morph = FakeChunkMorphology('chunk1')
chunk1 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk1.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk1.morph')
pool.add(chunk1)
morph = FakeChunkMorphology('chunk2')
chunk2 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk2.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk2.morph')
pool.add(chunk2)
self.assertRaises(morphlib.artifactresolver.MutualDependencyError,
@@ -677,12 +675,12 @@ class ArtifactResolverTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
morph = FakeChunkMorphology('chunk')
chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk.morph')
pool.add(chunk)
artifacts = self.resolver.resolve_artifacts(pool)
@@ -727,17 +725,17 @@ class ArtifactResolverTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
morph = FakeChunkMorphology('chunk1')
chunk1 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk1.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk1.morph')
pool.add(chunk1)
morph = FakeChunkMorphology('chunk2')
chunk2 = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk2.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk2.morph')
pool.add(chunk2)
self.assertRaises(morphlib.artifactresolver.DependencyOrderError,
@@ -762,12 +760,12 @@ class ArtifactResolverTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
morph = FakeChunkMorphology('chunk')
chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk.morph')
pool.add(chunk)
self.assertRaises(morphlib.artifactresolver.DependencyFormatError,
diff --git a/morphlib/buildgraph.py b/morphlib/buildgraph.py
index 444d5f5f..687dbb13 100644
--- a/morphlib/buildgraph.py
+++ b/morphlib/buildgraph.py
@@ -69,7 +69,7 @@ class BuildGraph(object):
def _realise_system_dependencies(self, system, queue, source_pool):
for stratum_name in system.morphology['strata']:
stratum = source_pool.lookup(
- system.repo.original_name,
+ system.repo_name,
system.original_ref,
'%s.morph' % stratum_name)
@@ -82,7 +82,7 @@ class BuildGraph(object):
if stratum.morphology['build-depends']:
for stratum_name in stratum.morphology['build-depends']:
other_stratum = source_pool.lookup(
- stratum.repo.original_name,
+ stratum.repo_name,
stratum.original_ref,
'%s.morph' % stratum_name)
strata.append(other_stratum)
diff --git a/morphlib/buildgraph_tests.py b/morphlib/buildgraph_tests.py
index d344592c..18abcb6c 100644
--- a/morphlib/buildgraph_tests.py
+++ b/morphlib/buildgraph_tests.py
@@ -25,7 +25,6 @@ class BuildGraphTests(unittest.TestCase):
def setUp(self):
self.graph = morphlib.buildgraph.BuildGraph()
- self.repo = morphlib.cachedrepo.CachedRepo('repo', 'url', 'path')
def test_create_empty_build_order_for_empty_pool(self):
pool = morphlib.sourcepool.SourcePool()
@@ -47,7 +46,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
source = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'foo.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'foo.morph')
pool.add(source)
order = self.graph.compute_build_order(pool)
@@ -67,7 +66,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
source = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'foo.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'foo.morph')
pool.add(source)
order = self.graph.compute_build_order(pool)
@@ -87,7 +86,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
source = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'foo.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'foo.morph')
pool.add(source)
order = self.graph.compute_build_order(pool)
@@ -114,7 +113,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
morph = morphlib.morph2.Morphology(
@@ -129,7 +128,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk.morph')
pool.add(chunk)
order = self.graph.compute_build_order(pool)
@@ -160,7 +159,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
morph = morphlib.morph2.Morphology(
@@ -175,7 +174,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk.morph')
pool.add(chunk)
order = self.graph.compute_build_order(pool)
@@ -215,7 +214,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
morph = morphlib.morph2.Morphology(
@@ -226,7 +225,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'first-chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'first-chunk.morph')
pool.add(first_chunk)
morph = morphlib.morph2.Morphology(
@@ -237,7 +236,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'second-chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'second-chunk.morph')
pool.add(second_chunk)
morph = morphlib.morph2.Morphology(
@@ -248,7 +247,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
third_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'third-chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'third-chunk.morph')
pool.add(third_chunk)
order = self.graph.compute_build_order(pool)
@@ -300,7 +299,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
morph = morphlib.morph2.Morphology(
@@ -311,7 +310,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'first-chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'first-chunk.morph')
pool.add(first_chunk)
morph = morphlib.morph2.Morphology(
@@ -322,7 +321,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'second-chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'second-chunk.morph')
pool.add(second_chunk)
morph = morphlib.morph2.Morphology(
@@ -333,7 +332,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
third_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'third-chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'third-chunk.morph')
pool.add(third_chunk)
order = self.graph.compute_build_order(pool)
@@ -361,7 +360,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'first-stratum.morph')
pool.add(first_stratum)
@@ -376,7 +375,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'second-stratum.morph')
pool.add(second_stratum)
@@ -391,7 +390,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
third_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'third-stratum.morph')
pool.add(third_stratum)
@@ -418,7 +417,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'first-stratum.morph')
pool.add(first_stratum)
@@ -445,7 +444,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'second-stratum.morph')
pool.add(second_stratum)
@@ -457,7 +456,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'first-chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'first-chunk.morph')
pool.add(first_chunk)
morph = morphlib.morph2.Morphology(
@@ -468,7 +467,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'second-chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'second-chunk.morph')
pool.add(second_chunk)
order = self.graph.compute_build_order(pool)
@@ -498,7 +497,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'first-stratum.morph')
pool.add(first_stratum)
@@ -510,7 +509,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'second-stratum.morph')
pool.add(second_stratum)
@@ -526,7 +525,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
system = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'system.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'system.morph')
pool.add(system)
order = self.graph.compute_build_order(pool)
@@ -554,7 +553,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'first-stratum.morph')
pool.add(first_stratum)
@@ -569,7 +568,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'second-stratum.morph')
pool.add(second_stratum)
@@ -599,7 +598,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'first-stratum.morph')
pool.add(first_stratum)
@@ -626,7 +625,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'second-stratum.morph')
pool.add(second_stratum)
@@ -638,7 +637,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'first-chunk.morph')
pool.add(first_chunk)
@@ -650,7 +649,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'second-chunk.morph')
pool.add(second_chunk)
@@ -691,7 +690,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'first-stratum.morph')
pool.add(first_stratum)
@@ -718,7 +717,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'second-stratum.morph')
pool.add(second_stratum)
@@ -730,7 +729,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'first-chunk.morph')
pool.add(first_chunk)
@@ -742,7 +741,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'second-chunk.morph')
pool.add(second_chunk)
@@ -754,7 +753,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph,
+ 'repo', 'original/ref', 'sha1', morph,
'third-chunk.morph')
pool.add(second_chunk)
@@ -787,7 +786,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
morph = morphlib.morph2.Morphology(
@@ -798,7 +797,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
first_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'first-chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'first-chunk.morph')
pool.add(first_chunk)
morph = morphlib.morph2.Morphology(
@@ -809,7 +808,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
second_chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'second-chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'second-chunk.morph')
pool.add(second_chunk)
self.assertRaises(morphlib.buildgraph.DependencyOrderError,
@@ -834,7 +833,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
stratum = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'stratum.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'stratum.morph')
pool.add(stratum)
morph = morphlib.morph2.Morphology(
@@ -845,7 +844,7 @@ class BuildGraphTests(unittest.TestCase):
}
''')
chunk = morphlib.source.Source(
- self.repo, 'original/ref', 'sha1', morph, 'chunk.morph')
+ 'repo', 'original/ref', 'sha1', morph, 'chunk.morph')
pool.add(chunk)
self.assertRaises(morphlib.buildgraph.DependencyFormatError,
diff --git a/morphlib/cachekeycomputer_tests.py b/morphlib/cachekeycomputer_tests.py
index f9ffb387..923cc9f9 100644
--- a/morphlib/cachekeycomputer_tests.py
+++ b/morphlib/cachekeycomputer_tests.py
@@ -81,8 +81,7 @@ class CacheKeyComputerTests(unittest.TestCase):
]
}''',
}.iteritems():
- repo = morphlib.cachedrepo.CachedRepo('repo', 'url', 'path')
- source = morphlib.source.Source(repo, 'original/ref', 'sha',
+ source = morphlib.source.Source('repo', 'original/ref', 'sha',
morphlib.morph2.Morphology(text), name)
pool.add(source)
self.sources[name] = source
diff --git a/morphlib/source.py b/morphlib/source.py
index dc535a55..ff440f0b 100644
--- a/morphlib/source.py
+++ b/morphlib/source.py
@@ -24,6 +24,7 @@ class Source(object):
Has the following properties:
* ``repo`` -- the git repository which contains the source
+ * ``repo_name`` -- name of the git repository which contains the source
* ``original_ref`` -- the git ref provided by the user or a morphology
* ``sha1`` -- the absolute git commit id for the revision we use
* ``morphology`` -- the in-memory representation of the morphology we use
@@ -36,9 +37,10 @@ class Source(object):
'''
- def __init__(self, repo, original_ref, sha1, morphology, filename):
+ def __init__(self, repo_name, original_ref, sha1, morphology, filename):
assert isinstance(morphology, morphlib.morph2.Morphology)
- self.repo = repo
+ self.repo = None
+ self.repo_name = repo_name
self.original_ref = original_ref
self.sha1 = sha1
self.morphology = morphology
@@ -57,6 +59,6 @@ class Source(object):
return source in self.dependencies
def __str__(self): # pragma: no cover
- return '%s|%s|%s' % (self.repo.original_name,
+ return '%s|%s|%s' % (self.repo_name,
self.original_ref,
self.filename)
diff --git a/morphlib/source_tests.py b/morphlib/source_tests.py
index 3a396c63..a539da29 100644
--- a/morphlib/source_tests.py
+++ b/morphlib/source_tests.py
@@ -29,20 +29,23 @@ class SourceTests(unittest.TestCase):
'''
def setUp(self):
- self.repo = 'foo.repo'
+ self.repo_name = 'foo.repo'
self.original_ref = 'original/ref'
self.sha1 = 'CAFEF00D'
self.morphology = morphlib.morph2.Morphology(self.morphology_text)
self.filename = 'foo.morph'
- self.source = morphlib.source.Source(self.repo, self.original_ref,
- self.sha1, self.morphology,
- self.filename)
- self.other = morphlib.source.Source(self.repo, self.original_ref,
- self.sha1, self.morphology,
- self.filename)
+ self.source = morphlib.source.Source(
+ self.repo_name,self.original_ref, self.sha1, self.morphology,
+ self.filename)
+ self.other = morphlib.source.Source(
+ self.repo_name, self.original_ref, self.sha1, self.morphology,
+ self.filename)
- def test_sets_repo(self):
- self.assertEqual(self.source.repo, self.repo)
+ def test_sets_repo_name(self):
+ self.assertEqual(self.source.repo_name, self.repo_name)
+
+ def test_sets_repo_to_none_initially(self):
+ self.assertEqual(self.source.repo, None)
def test_sets_original_ref(self):
self.assertEqual(self.source.original_ref, self.original_ref)
diff --git a/morphlib/sourcepool.py b/morphlib/sourcepool.py
index 0f144ef2..b91f0f25 100644
--- a/morphlib/sourcepool.py
+++ b/morphlib/sourcepool.py
@@ -22,25 +22,25 @@ class SourcePool(object):
self._sources = {}
self._order = []
- def _key(self, reponame, original_ref, filename):
- return (reponame, original_ref, filename)
+ def _key(self, repo_name, original_ref, filename):
+ return (repo_name, original_ref, filename)
def add(self, source):
'''Add a source to the pool.'''
- key = self._key(source.repo.original_name,
+ key = self._key(source.repo_name,
source.original_ref,
source.filename)
self._sources[key] = source
self._order.append(source)
- def lookup(self, reponame, original_ref, filename):
+ def lookup(self, repo_name, original_ref, filename):
'''Find a source in the pool.
Raise KeyError if it is not found.
'''
- key = self._key(reponame, original_ref, filename)
+ key = self._key(repo_name, original_ref, filename)
return self._sources[key]
def __iter__(self):
diff --git a/morphlib/sourcepool_tests.py b/morphlib/sourcepool_tests.py
index 60f09dfc..9243bb1d 100644
--- a/morphlib/sourcepool_tests.py
+++ b/morphlib/sourcepool_tests.py
@@ -22,8 +22,7 @@ import morphlib
class DummySource(object):
def __init__(self):
- self.repo = morphlib.cachedrepo.CachedRepo(
- 'repo', 'repo url', 'repo path')
+ self.repo_name = 'repo'
self.original_ref = 'original/ref'
self.sha1 = 'dummy.sha1'
self.filename = 'dummy.morph'
@@ -48,7 +47,7 @@ class SourcePoolTests(unittest.TestCase):
def test_looks_up_source(self):
self.pool.add(self.source)
- result = self.pool.lookup(self.source.repo.original_name,
+ result = self.pool.lookup(self.source.repo_name,
self.source.original_ref,
self.source.filename)
self.assertEqual(result, self.source)
@@ -56,7 +55,7 @@ class SourcePoolTests(unittest.TestCase):
def test_lookup_raises_keyerror_if_not_found(self):
self.assertRaises(KeyError,
self.pool.lookup,
- self.source.repo.original_name,
+ self.source.repo_name,
self.source.original_ref,
self.source.filename)