aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2016-12-04 19:35:28 +0100
committerGuido Günther <agx@sigxcpu.org>2016-12-04 19:45:57 +0100
commitf631e64845e1d6584b94dd18da2b5e91d4c71d67 (patch)
tree36fe093396719b40bb3bd97468c3980fb0cac32b
parent0a9cf44593fbb97bdbd6cfdcdfb37de69f4b9c90 (diff)
import_dsc: fail properly again without a package to import
(introduced by 03276df5b9391dc877521cd6c3553ca071157991)
-rw-r--r--gbp/scripts/import_dsc.py13
-rw-r--r--tests/component/deb/test_import_dsc.py16
2 files changed, 25 insertions, 4 deletions
diff --git a/gbp/scripts/import_dsc.py b/gbp/scripts/import_dsc.py
index 130ed700..61130322 100644
--- a/gbp/scripts/import_dsc.py
+++ b/gbp/scripts/import_dsc.py
@@ -216,7 +216,7 @@ def disable_pristine_tar(options, reason):
def build_parser(name):
try:
parser = GbpOptionParserDebian(command=os.path.basename(name), prefix='',
- usage='%prog [options] /path/to/package.dsc [<target>]')
+ usage='%prog [options] /path/to/package.dsc [target]')
except GbpError as err:
gbp.log.err(err)
return None
@@ -293,7 +293,13 @@ def main(argv):
return ExitCodes.parse_error
try:
- if len(args) > 2:
+ if len(args) == 1:
+ pkg = args[0]
+ target = None
+ elif len(args) == 2:
+ pkg = args[0]
+ target = args[1]
+ else:
gbp.log.err("Need to give exactly one package to import. Try --help.")
raise GbpError
try:
@@ -309,7 +315,6 @@ def main(argv):
needs_repo = True
is_empty = True
- pkg = args[0]
if options.download:
dsc = download_source(pkg,
dirs=dirs,
@@ -324,7 +329,7 @@ def main(argv):
print_dsc(src)
if needs_repo:
- target = args[1] if len(args) >= 2 else src.pkg
+ target = target or src.pkg
if os.path.exists(target):
raise GbpError("Directory '%s' already exists. If you want to import into it, "
"please change into this directory otherwise move it away first."
diff --git a/tests/component/deb/test_import_dsc.py b/tests/component/deb/test_import_dsc.py
index bc10962a..7496d0a6 100644
--- a/tests/component/deb/test_import_dsc.py
+++ b/tests/component/deb/test_import_dsc.py
@@ -160,3 +160,19 @@ class TestImportDsc(ComponentTestBase):
self._check_repo_state(repo, 'master', ['master', 'upstream'],
tags=['upstream/2.6', 'debian/2.6-2'])
assert len(repo.get_commits()) == 2
+
+ def test_target_dir(self):
+ """Test if setting the target dir works"""
+ def _dsc(version):
+ return os.path.join(DEB_TEST_DATA_DIR,
+ 'dsc-3.0',
+ 'hello-debhelper_%s.dsc' % version)
+ dsc = _dsc('2.6-2')
+ assert import_dsc(['arg0',
+ '--verbose',
+ '--no-pristine-tar',
+ dsc,
+ 'targetdir']) == 0
+ assert os.path.exists('targetdir')
+ repo = ComponentTestGitRepository('targetdir')
+ self._check_repo_state(repo, 'master', ['master', 'upstream'])