summaryrefslogtreecommitdiff
path: root/morphlib/localrepocache_tests.py
diff options
context:
space:
mode:
authorLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-04-09 18:15:27 +0100
committerLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-04-09 18:15:27 +0100
commitcc9d92874c159b65b248f8f8f7e164aa32416836 (patch)
treedd9f29865d4f8d65e1c1290145c6f7d9c9ce3b57 /morphlib/localrepocache_tests.py
parenteb362413076846559ac1c22a32e2e29174055fcb (diff)
downloadmorph-cc9d92874c159b65b248f8f8f7e164aa32416836.tar.gz
Add bundle support to LocalRepoCache
Diffstat (limited to 'morphlib/localrepocache_tests.py')
-rw-r--r--morphlib/localrepocache_tests.py26
1 files changed, 25 insertions, 1 deletions
diff --git a/morphlib/localrepocache_tests.py b/morphlib/localrepocache_tests.py
index 13a1c415..add0aa20 100644
--- a/morphlib/localrepocache_tests.py
+++ b/morphlib/localrepocache_tests.py
@@ -23,15 +23,22 @@ class LocalRepoCacheTests(unittest.TestCase):
def setUp(self):
baseurls = ['git://example.com/']
+ bundle_base_url = 'http://lorry.example.com/bundles/'
self.reponame = 'reponame'
self.repourl = 'git://example.com/reponame'
+ escaped_url = 'git___example_com_reponame'
+ self.bundle_url = '%s%s' % (bundle_base_url, escaped_url)
self.cachedir = '/cache/dir'
+ self.cache_path = '%s/%s' % (self.cachedir, escaped_url)
self.cache = set()
self.remotes = []
+ self.fetched = []
self.lrc = morphlib.localrepocache.LocalRepoCache(self.cachedir,
- baseurls)
+ baseurls,
+ bundle_base_url)
self.lrc._git = self.fake_git
self.lrc._exists = self.fake_exists
+ self.lrc._fetch = self.not_found
def fake_git(self, args):
if args[0] == 'clone':
@@ -48,6 +55,13 @@ class LocalRepoCacheTests(unittest.TestCase):
def fake_exists(self, filename):
return filename in self.cache
+ def not_found(self, url, path):
+ return False
+
+ def fake_fetch(self, url, path):
+ self.fetched.append(url)
+ return True
+
def test_has_not_got_relative_repo_initially(self):
self.assertFalse(self.lrc.has_repo(self.reponame))
@@ -75,6 +89,16 @@ class LocalRepoCacheTests(unittest.TestCase):
self.assertRaises(morphlib.localrepocache.NoRemote,
self.lrc.cache_repo, self.repourl)
+ def test_does_not_mind_a_missing_bundle(self):
+ self.lrc.cache_repo(self.repourl)
+ self.assertEqual(self.fetched, [])
+
+ def test_fetches_bundle_when_it_exists(self):
+ self.lrc._fetch = self.fake_fetch
+ self.lrc.cache_repo(self.repourl)
+ self.assertEqual(self.fetched, [self.bundle_url])
+ self.assertEqual(self.remotes, [self.cache_path + '.bundle'])
+
def test_gets_cached_relative_repo(self):
self.lrc.cache_repo(self.reponame)
cached = self.lrc.get_repo(self.reponame)