summaryrefslogtreecommitdiff
path: root/morphlib/builder_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/builder_tests.py')
-rw-r--r--morphlib/builder_tests.py89
1 files changed, 2 insertions, 87 deletions
diff --git a/morphlib/builder_tests.py b/morphlib/builder_tests.py
index 0cc90819..0067022f 100644
--- a/morphlib/builder_tests.py
+++ b/morphlib/builder_tests.py
@@ -15,12 +15,12 @@
import json
-import os
import StringIO
import unittest
import morphlib
import morphlib.gitdir_tests
+import morphlib.testutils
class FakeBuildSystem(object):
@@ -78,64 +78,6 @@ class FakeBuildEnv(object):
}
-class FakeFileHandle(object):
-
- def __init__(self, cache, key):
- self._string = ""
- self._cache = cache
- self._key = key
-
- def __enter__(self):
- return self
-
- def _writeback(self):
- self._cache._cached[self._key] = self._string
-
- def __exit__(self, type, value, traceback):
- self._writeback()
-
- def close(self):
- self._writeback()
-
- def write(self, string):
- self._string += string
-
-
-class FakeArtifactCache(object):
-
- def __init__(self):
- self._cached = {}
-
- def put(self, artifact):
- return FakeFileHandle(self, (artifact.cache_key, artifact.name))
-
- def put_artifact_metadata(self, artifact, name):
- return FakeFileHandle(self, (artifact.cache_key, artifact.name, name))
-
- def put_source_metadata(self, source, cachekey, name):
- return FakeFileHandle(self, (cachekey, name))
-
- def get(self, artifact):
- return StringIO.StringIO(
- self._cached[(artifact.cache_key, artifact.name)])
-
- def get_artifact_metadata(self, artifact, name):
- return StringIO.StringIO(
- self._cached[(artifact.cache_key, artifact.name, name)])
-
- def get_source_metadata(self, source, cachekey, name):
- return StringIO.StringIO(self._cached[(cachekey, name)])
-
- def has(self, artifact):
- return (artifact.cache_key, artifact.name) in self._cached
-
- def has_artifact_metadata(self, artifact, name):
- return (artifact.cache_key, artifact.name, name) in self._cached
-
- def has_source_metadata(self, source, cachekey, name):
- return (cachekey, name) in self._cached
-
-
class BuilderBaseTests(unittest.TestCase):
def fake_runcmd(self, argv, *args, **kwargs):
@@ -151,7 +93,7 @@ class BuilderBaseTests(unittest.TestCase):
self.commands_run = []
self.app = FakeApp(self.fake_runcmd)
self.staging_area = FakeStagingArea(self.fake_runcmd, FakeBuildEnv())
- self.artifact_cache = FakeArtifactCache()
+ self.artifact_cache = morphlib.testutils.FakeLocalArtifactCache()
self.artifact = FakeArtifact('le-artifact')
self.repo_cache = None
self.build_env = FakeBuildEnv()
@@ -187,33 +129,6 @@ class BuilderBaseTests(unittest.TestCase):
self.assertEqual(sorted(events),
sorted(meta['build-times'].keys()))
- def test_downloads_depends(self):
- lac = FakeArtifactCache()
- rac = FakeArtifactCache()
- afacts = [FakeArtifact(name) for name in ('a', 'b', 'c')]
- for a in afacts:
- fh = rac.put(a)
- fh.write(a.name)
- fh.close()
- morphlib.builder.download_depends(afacts, lac, rac)
- self.assertTrue(all(lac.has(a) for a in afacts))
-
- def test_downloads_depends_metadata(self):
- lac = FakeArtifactCache()
- rac = FakeArtifactCache()
- afacts = [FakeArtifact(name) for name in ('a', 'b', 'c')]
- for a in afacts:
- fh = rac.put(a)
- fh.write(a.name)
- fh.close()
- fh = rac.put_artifact_metadata(a, 'meta')
- fh.write('metadata')
- fh.close()
- morphlib.builder.download_depends(afacts, lac, rac, ('meta',))
- self.assertTrue(all(lac.has(a) for a in afacts))
- self.assertTrue(all(lac.has_artifact_metadata(a, 'meta')
- for a in afacts))
-
class ChunkBuilderTests(unittest.TestCase):