diff options
author | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2012-04-09 18:15:27 +0100 |
---|---|---|
committer | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2012-04-09 18:15:27 +0100 |
commit | cc9d92874c159b65b248f8f8f7e164aa32416836 (patch) | |
tree | dd9f29865d4f8d65e1c1290145c6f7d9c9ce3b57 /morphlib/localrepocache_tests.py | |
parent | eb362413076846559ac1c22a32e2e29174055fcb (diff) | |
download | morph-cc9d92874c159b65b248f8f8f7e164aa32416836.tar.gz |
Add bundle support to LocalRepoCache
Diffstat (limited to 'morphlib/localrepocache_tests.py')
-rw-r--r-- | morphlib/localrepocache_tests.py | 26 |
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) |