diff options
author | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2012-09-25 13:46:02 +0000 |
---|---|---|
committer | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2012-09-25 15:07:57 +0100 |
commit | ebed9ace77eed4b8e40675cff40a96f61ae291e2 (patch) | |
tree | f98202409666c39f3bea7cb5e1aca55c05002a7b /morphlib/localrepocache_tests.py | |
parent | ecdd22d0aa03ddb2bdac3fcba506d70d6ab45c4b (diff) | |
download | morph-ebed9ace77eed4b8e40675cff40a96f61ae291e2.tar.gz |
Use tarballs instead of bundles
This makes a non-backward-compatible change to morph which switches it to using
tarballs instead of bundles when initialising cached git repositories. This is
faster because it doesn't require index-pack --fix-thin operations on the
machine running morph.
Diffstat (limited to 'morphlib/localrepocache_tests.py')
-rw-r--r-- | morphlib/localrepocache_tests.py | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/morphlib/localrepocache_tests.py b/morphlib/localrepocache_tests.py index c178f8b4..26a92616 100644 --- a/morphlib/localrepocache_tests.py +++ b/morphlib/localrepocache_tests.py @@ -16,6 +16,7 @@ import unittest import urllib2 +import os import cliapp @@ -27,11 +28,11 @@ class LocalRepoCacheTests(unittest.TestCase): def setUp(self): aliases = ['upstream=git://example.com/#example.com:%s.git'] repo_resolver = morphlib.repoaliasresolver.RepoAliasResolver(aliases) - bundle_base_url = 'http://lorry.example.com/bundles/' + tarball_base_url = 'http://lorry.example.com/tarballs/' self.reponame = 'upstream:reponame' self.repourl = 'git://example.com/reponame' escaped_url = 'git___example_com_reponame' - self.bundle_url = '%s%s.bndl' % (bundle_base_url, escaped_url) + self.tarball_url = '%s%s.tar' % (tarball_base_url, escaped_url) self.cachedir = '/cache/dir' self.cache_path = '%s/%s' % (self.cachedir, escaped_url) self.cache = set() @@ -39,12 +40,20 @@ class LocalRepoCacheTests(unittest.TestCase): self.fetched = [] self.removed = [] self.lrc = morphlib.localrepocache.LocalRepoCache( - object(), self.cachedir, repo_resolver, bundle_base_url) + object(), self.cachedir, repo_resolver, tarball_base_url) self.lrc._git = self.fake_git self.lrc._exists = self.fake_exists self.lrc._fetch = self.not_found self.lrc._mkdir = self.fake_mkdir self.lrc._remove = self.fake_remove + self.lrc._runcmd = self.fake_runcmd + + def fake_runcmd(self, args, cwd=None): + if args[0:2] == ['tar', 'xf']: + self.unpacked_tar = args[2] + self.cache.add(cwd) + else: + raise NotImplementedError() def fake_git(self, args, cwd=None): if args[0] == 'clone': @@ -58,7 +67,15 @@ class LocalRepoCacheTests(unittest.TestCase): elif args[0:2] == ['remote', 'set-url']: remote = args[2] url = args[3] - self.remotes[remote]['url'] = url + self.remotes[remote] = {'url': url} + elif args[0:2] == ['config', 'remote.origin.url']: + remote = 'origin' + url = args[2] + self.remotes[remote] = {'url': url} + elif args[0:2] == ['config', 'remote.origin.mirror']: + remote = 'origin' + elif args[0:2] == ['config', 'remote.origin.fetch']: + remote = 'origin' else: raise NotImplementedError() @@ -113,15 +130,17 @@ class LocalRepoCacheTests(unittest.TestCase): self.assertRaises(morphlib.localrepocache.NoRemote, self.lrc.cache_repo, self.repourl) - def test_does_not_mind_a_missing_bundle(self): + def test_does_not_mind_a_missing_tarball(self): self.lrc.cache_repo(self.repourl) self.assertEqual(self.fetched, []) - def test_fetches_bundle_when_it_exists(self): + def test_fetches_tarball_when_it_exists(self): self.lrc._fetch = self.fake_fetch + self.unpacked_tar = "" + self.mkdir_path = "" self.lrc.cache_repo(self.repourl) - self.assertEqual(self.fetched, [self.bundle_url]) - self.assertEqual(self.removed, [self.cache_path + '.bundle']) + self.assertEqual(self.fetched, [self.tarball_url]) + self.assertEqual(self.removed, [self.cache_path + '.tar']) self.assertEqual(self.remotes['origin']['url'], self.repourl) def test_gets_cached_shortened_repo(self): |