summaryrefslogtreecommitdiff
path: root/morphlib/cachedrepo_tests.py
diff options
context:
space:
mode:
authorDaniel Silverstone <daniel.silverstone@codethink.co.uk>2012-09-14 09:33:15 +0100
committerDaniel Silverstone <daniel.silverstone@codethink.co.uk>2012-09-14 17:25:29 +0100
commite95f04846f5ecc82ce0c7e638756059442de8d23 (patch)
tree639ac8ef8f55a919aa8826a9b40122deb243b978 /morphlib/cachedrepo_tests.py
parentdd4f52f311467240ea2749c773d46b751478381d (diff)
downloadmorph-e95f04846f5ecc82ce0c7e638756059442de8d23.tar.gz
Update unit tests for bare repo caches.
Update the unit tests so that they pass with the new bare repository caches.
Diffstat (limited to 'morphlib/cachedrepo_tests.py')
-rw-r--r--morphlib/cachedrepo_tests.py36
1 files changed, 28 insertions, 8 deletions
diff --git a/morphlib/cachedrepo_tests.py b/morphlib/cachedrepo_tests.py
index 7c6781c6..0a87b32a 100644
--- a/morphlib/cachedrepo_tests.py
+++ b/morphlib/cachedrepo_tests.py
@@ -30,10 +30,10 @@ class CachedRepoTests(unittest.TestCase):
output = {
'master':
'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9'
- ' refs/remotes/origin/master',
+ ' refs/heads/master',
'baserock/morph':
'8b780e2e6f102fcf400ff973396566d36d730501'
- ' refs/remotes/origin/baserock/morph',
+ ' refs/heads/baserock/morph',
}
try:
return output[ref]
@@ -45,12 +45,14 @@ class CachedRepoTests(unittest.TestCase):
'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9':
'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
'8b780e2e6f102fcf400ff973396566d36d730501':
- 'ffffffffffffffffffffffffffffffffffffffff'
+ 'ffffffffffffffffffffffffffffffffffffffff',
+ 'a4da32f5a81c8bc6d660404724cedc3bc0914a75':
+ 'dddddddddddddddddddddddddddddddddddddddd'
}
try:
return output[absref]
except:
- raise cliapp.AppException('git log -1 --format=format:%T %s' %
+ raise cliapp.AppException('git log -1 --format=format:%%T %s' %
absref)
def rev_list(self, ref):
@@ -77,7 +79,8 @@ class CachedRepoTests(unittest.TestCase):
'git cat-file blob %s:%s' % (ref, filename))
def copy_repository(self, source_dir, target_dir):
- pass
+ if target_dir.endswith('failed-checkout'):
+ raise morphlib.cachedrepo.CopyError(self.repo, target_dir)
def checkout_ref(self, ref, target_dir):
if ref == 'a4da32f5a81c8bc6d660404724cedc3bc0914a75':
@@ -98,6 +101,12 @@ class CachedRepoTests(unittest.TestCase):
except:
raise cliapp.AppException('git ls-tree --name-only %s' % (ref))
+ def clone_into(self, target_dir, ref):
+ if target_dir.endswith('failed-checkout'):
+ raise morphlib.cachedrepo.CloneError(self.repo, target_dir)
+ self.clone_target = target_dir
+ self.clone_ref = ref
+
def update_successfully(self):
pass
@@ -117,6 +126,7 @@ class CachedRepoTests(unittest.TestCase):
self.repo._copy_repository = self.copy_repository
self.repo._checkout_ref = self.checkout_ref
self.repo._ls_tree = self.ls_tree
+ self.repo._clone_into = self.clone_into
self.tempdir = morphlib.tempdir.Tempdir()
def tearDown(self):
@@ -176,14 +186,19 @@ class CachedRepoTests(unittest.TestCase):
self.assertRaises(cachedrepo.UnresolvedNamedReferenceError,
self.repo.cat, 'master', 'doesnt-matter')
- def test_fail_checkout_into_existing_directory(self):
+ def test_fail_clone_checkout_into_existing_directory(self):
self.assertRaises(cachedrepo.CheckoutDirectoryExistsError,
- self.repo.checkout,
+ self.repo.clone_checkout,
'e28a23812eadf2fce6583b8819b9c5dbd36b9fb9',
self.tempdir.dirname)
def test_fail_checkout_due_to_clone_error(self):
- self.assertRaises(cachedrepo.CloneError, self.repo.checkout,
+ self.assertRaises(cachedrepo.CloneError, self.repo.clone_checkout,
+ 'a4da32f5a81c8bc6d660404724cedc3bc0914a75',
+ self.tempdir.join('failed-checkout'))
+
+ def test_fail_checkout_due_to_copy_error(self):
+ self.assertRaises(cachedrepo.CopyError, self.repo.checkout,
'a4da32f5a81c8bc6d660404724cedc3bc0914a75',
self.tempdir.join('failed-checkout'))
@@ -220,3 +235,8 @@ class CachedRepoTests(unittest.TestCase):
def test_failing_update(self):
self.repo._update = self.update_with_failure
self.assertRaises(cachedrepo.UpdateError, self.repo.update)
+
+ def test_clone_checkout(self):
+ self.repo.clone_checkout('master', '/.DOES_NOT_EXIST')
+ self.assertEqual(self.clone_target, '/.DOES_NOT_EXIST')
+ self.assertEqual(self.clone_ref, 'master')