diff options
Diffstat (limited to 'morphlib')
-rw-r--r-- | morphlib/cachedrepo.py | 9 | ||||
-rw-r--r-- | morphlib/cachedrepo_tests.py | 8 |
2 files changed, 8 insertions, 9 deletions
diff --git a/morphlib/cachedrepo.py b/morphlib/cachedrepo.py index 0f348196..7d2bae4b 100644 --- a/morphlib/cachedrepo.py +++ b/morphlib/cachedrepo.py @@ -149,15 +149,10 @@ class CachedRepo(object): raise CheckoutDirectoryExistsError(self, target_dir) os.mkdir(target_dir) - - try: - sha1 = self._rev_list(ref).strip() - except morphlib.execute.CommandFailure: - raise InvalidReferenceError(self, ref) try: self._copy_repository(self.path, target_dir) - self._checkout_ref(sha1, target_dir) + self._checkout_ref(ref, target_dir) except morphlib.execute.CommandFailure: raise CheckoutError(self, ref, target_dir) @@ -189,7 +184,7 @@ class CachedRepo(object): target_dir]) def _checkout_ref(self, ref, target_dir): # pragma: no cover - self.ex.runv(['git', 'checkout', ref], pwd=target_dir) + self.ex.runv(['git', 'checkout', ref], cwd=target_dir) def _update(self): # pragma: no cover self.ex.runv(['git', 'remote', 'update', 'origin']) diff --git a/morphlib/cachedrepo_tests.py b/morphlib/cachedrepo_tests.py index 127a866b..f3d4d1fc 100644 --- a/morphlib/cachedrepo_tests.py +++ b/morphlib/cachedrepo_tests.py @@ -65,7 +65,11 @@ class CachedRepoTests(unittest.TestCase): pass def checkout_ref(self, ref, target_dir): - if ref == 'a4da32f5a81c8bc6d660404724cedc3bc0914a75': + bad_refs = [ + 'a4da32f5a81c8bc6d660404724cedc3bc0914a75', + '079bbfd447c8534e464ce5d40b80114c2022ebf4', + ] + if ref in bad_refs: # simulate a git failure or something similar to # trigger a CheckoutError raise morphlib.execute.CommandFailure('git checkout %s' % ref, '') @@ -153,7 +157,7 @@ class CachedRepoTests(unittest.TestCase): self.tempdir.dirname) def test_fail_checkout_from_invalid_ref(self): - self.assertRaises(cachedrepo.InvalidReferenceError, self.repo.checkout, + self.assertRaises(cachedrepo.CheckoutError, self.repo.checkout, '079bbfd447c8534e464ce5d40b80114c2022ebf4', self.tempdir.join('checkout-from-invalid-ref')) |