From 1375fd4705b40a0f0d1f68b42ebcb2bbe02b31fe Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Tue, 25 Apr 2017 23:34:59 +0200 Subject: clone: don't print exception when we can't find the source package --- gbp/scripts/clone.py | 7 +++++-- tests/component/deb/test_clone.py | 9 ++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gbp/scripts/clone.py b/gbp/scripts/clone.py index a06307d5..04836f71 100755 --- a/gbp/scripts/clone.py +++ b/gbp/scripts/clone.py @@ -42,7 +42,7 @@ def apt_showsrc(pkg): aptsrc(quiet=True) return aptsrc.stdout except CommandExecFailed: - gbp.log.err("Can't find source package for '%s'" % pkg) + return '' def vcs_git_url(pkg): @@ -70,7 +70,8 @@ def vcs_git_url(pkg): version = repo = None if not repos: - raise GbpError("Can't find a source package for '%s'" % pkg) + gbp.log.err("Can't find a source package for '%s'" % pkg) + return None s = sorted(repos, key=cmp_to_key(DpkgCompareVersions())) return repos[s[-1]] @@ -158,6 +159,8 @@ def main(argv): return 1 else: source = repo_to_url(args[1]) + if not source: + return 1 clone_to, auto_name = (os.path.curdir, True) if len(args) < 3 else (args[2], False) try: diff --git a/tests/component/deb/test_clone.py b/tests/component/deb/test_clone.py index 91e0cd18..6a5b8dfd 100644 --- a/tests/component/deb/test_clone.py +++ b/tests/component/deb/test_clone.py @@ -57,7 +57,7 @@ class TestClone(ComponentTestBase): self.check_hook_vars('postclone', ["GBP_GIT_DIR"]) @skipUnless(os.getenv("GBP_NETWORK_TESTS"), "network tests disabled") - def test_clone_vcsgit(self): + def test_clone_vcsgit_ok(self): """Test that cloning from vcs-git urls works""" dest = os.path.join(self._tmpdir, 'cloned_repo') @@ -66,6 +66,13 @@ class TestClone(ComponentTestBase): cloned = ComponentTestGitRepository(dest) self._check_repo_state(cloned, 'debian/sid', ['debian/sid', 'upstream/latest']) + @skipUnless(os.getenv("GBP_NETWORK_TESTS"), "network tests disabled") + def test_clone_vcsgit_fail(self): + """Test that cloning from vcs-git urls fails as expected""" + ret = clone(['arg0', "vcsgit:doesnotexist"]) + self.assertEquals(ret, 1) + self._check_log(-1, "gbp:error: Can't find a source package for 'doesnotexist'") + @skipUnless(os.getenv("GBP_NETWORK_TESTS"), "network tests disabled") def test_clone_github(self): """Test that cloning from github urls works""" -- cgit v1.2.3