From e5aedb16548a6a83223862b96ba2112e0c02c126 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Thu, 6 Sep 2018 18:34:13 +0200 Subject: buildpackage, export-orig: support version substitution for --git-tarball-dir Add support for passing %(version), %(hversion) and %(version%A%B) in buildpackage --git-tarball-dir and export-orig --tarball-dir. Closes: #909266 Signed-off-by: Luca Boccassi --- tests/component/deb/test_buildpackage.py | 21 +++++++++++++++++++++ tests/component/deb/test_export_orig.py | 25 +++++++++++++++++++++++++ 2 files changed, 46 insertions(+) (limited to 'tests') diff --git a/tests/component/deb/test_buildpackage.py b/tests/component/deb/test_buildpackage.py index c8a31e77..fe0802a0 100644 --- a/tests/component/deb/test_buildpackage.py +++ b/tests/component/deb/test_buildpackage.py @@ -312,3 +312,24 @@ class TestBuildpackage(ComponentTestBase): '--git-preexport=printenv > %s' % preexport_out]) ok_(os.path.exists(preexport_out)) self.check_hook_vars('../preexport', ["GBP_BUILD_DIR", "GBP_GIT_DIR"]) + + @RepoFixtures.overlay() + def test_export_dir_version_replacement(self, repo): + """Test that building in overlay mode with export dir with versioned name works""" + tarball_dir = os.path.join(DEB_TEST_DATA_DIR, 'foo-%(version)s') + self._test_buildpackage(repo, ['--git-overlay', + '--git-compression=auto', + '--git-tarball-dir=%s' % tarball_dir, + '--git-no-purge', + '--git-component=foo', + '--git-export-dir=../foo']) + # Check if main tarball got unpacked + ok_(os.path.exists('../foo/hello-debhelper-2.8/configure')) + # Check if debian dir is there + ok_(os.path.exists('../foo/hello-debhelper-2.8/debian/changelog')) + # Check if additional tarball got unpacked + ok_(os.path.exists('../foo/hello-debhelper-2.8/foo/test1')) + # Check if upstream tarballs is in export_dir + eq_(sorted(glob.glob('../foo/*')), ['../foo/hello-debhelper-2.8', + '../foo/hello-debhelper_2.8.orig-foo.tar.gz', + '../foo/hello-debhelper_2.8.orig.tar.gz']) diff --git a/tests/component/deb/test_export_orig.py b/tests/component/deb/test_export_orig.py index e42a1fc2..b2a8e8bb 100644 --- a/tests/component/deb/test_export_orig.py +++ b/tests/component/deb/test_export_orig.py @@ -111,3 +111,28 @@ class TestExportOrig(ComponentTestBase): '--pristine-tar']) ok_(ret == 1, "Exporting tarballs must fail") self._check_log(-1, ".*git show refs/heads/pristine-tar:.*failed") + + def test_tarball_dir_version_replacement(self): + """Test that generating tarball from directory version substitution works""" + pkg = 'hello-debhelper' + dsc = self._dsc_name(pkg, '2.8-1', 'dsc-3.0-additional-tarballs') + tarballs = ["%s_2.8.orig-foo.tar.gz" % pkg, + "%s_2.8.orig.tar.gz" % pkg] + + assert import_dsc(['arg0', '--no-pristine-tar', dsc]) == 0 + ComponentTestGitRepository(pkg) + os.chdir(pkg) + for t in tarballs: + self.assertFalse(os.path.exists(os.path.join('..', t)), "Tarball %s must not exist" % t) + + tarball_dir = os.path.join(DEB_TEST_DATA_DIR, 'foo-%(version)s') + ret = export_orig(['arg0', + '--tarball-dir=%s' % tarball_dir, + '--component=foo', + '--no-pristine-tar']) + ok_(ret == 0, "Exporting tarballs failed") + # tarballs should be found in existing --tarball-dir directory and thus + # not get recreated by export-orig + for t in tarballs: + self.assertFalse(os.path.exists(os.path.join('..', t)), "Tarball %s found" % t) + self.assertTrue(os.path.exists(os.path.join(DEB_TEST_DATA_DIR, 'foo-2.8', t)), "Tarball %s not found" % t) -- cgit v1.2.3