aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorLuca Boccassi <bluca@debian.org>2018-06-25 23:37:02 +0100
committerGuido Günther <agx@sigxcpu.org>2018-10-28 12:30:25 +0100
commitce6b1e755fbd999156dbe8c0bf28ccb180641ba2 (patch)
tree3424f5f53b51c244af83bf2c4d21aec1379c76a0 /tests
parent6b1342253eecd83e514400fccc531205450b13d3 (diff)
buildpackage{,-rpm}: add preexport hook
Sometimes it is necessary to perform operations before preparing the tarballs and exporting to the build directory. One such case is when having to handle extremely large binary assets in the orig tarball and at the same time complex packaging code, which makes it desirable to separate the two into different repositories for easier handling. A pre-export hook allows to ensure that the tarball repository is present and checked out at the correct branch. Closes: #909266 Signed-off-by: Luca Boccassi <bluca@debian.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/component/deb/test_buildpackage.py9
-rw-r--r--tests/component/rpm/test_buildpackage_rpm.py6
2 files changed, 13 insertions, 2 deletions
diff --git a/tests/component/deb/test_buildpackage.py b/tests/component/deb/test_buildpackage.py
index 7aa8577f..c8a31e77 100644
--- a/tests/component/deb/test_buildpackage.py
+++ b/tests/component/deb/test_buildpackage.py
@@ -303,3 +303,12 @@ class TestBuildpackage(ComponentTestBase):
'--git-tarball-dir=../tarballs'])
eq_(ret, 1)
self._check_log(-1, "gbp:error: Non-native package 'hello-debhelper' has invalid version '3.0'")
+
+ @RepoFixtures.quilt30()
+ def test_preexport(self, repo):
+ """Test the pre-export hook """
+ preexport_out = os.path.join(repo.path, '..', 'preexport.out')
+ self._test_buildpackage(repo, ['--git-export-dir=../export-dir',
+ '--git-preexport=printenv > %s' % preexport_out])
+ ok_(os.path.exists(preexport_out))
+ self.check_hook_vars('../preexport', ["GBP_BUILD_DIR", "GBP_GIT_DIR"])
diff --git a/tests/component/rpm/test_buildpackage_rpm.py b/tests/component/rpm/test_buildpackage_rpm.py
index 78e9ff37..51c76cb1 100644
--- a/tests/component/rpm/test_buildpackage_rpm.py
+++ b/tests/component/rpm/test_buildpackage_rpm.py
@@ -467,11 +467,13 @@ class TestGbpRpm(RpmRepoTestBase):
self.init_test_repo('gbp-test-native')
cleaner = 'echo -n cleaner >> ../hooks'
+ preexport = 'echo -n preexport >> $GBP_TMP_DIR/../hooks'
postexport = 'echo -n postexport >> $GBP_TMP_DIR/../hooks'
prebuild = 'echo -n prebuild >> $GBP_BUILD_DIR/../hooks'
postbuild = 'echo -n postbuild >> $GBP_BUILD_DIR/../hooks'
posttag = 'echo -n posttag >> ../hooks'
args = ['--git-cleaner=%s' % cleaner,
+ '--git-preexport=%s' % preexport,
'--git-postexport=%s' % postexport,
'--git-prebuild=%s' % prebuild,
'--git-postbuild=%s' % postbuild,
@@ -483,13 +485,13 @@ class TestGbpRpm(RpmRepoTestBase):
# Export and build scripts are run when not tagging
eq_(mock_gbp(args), 0)
- self.check_and_rm_file('../hooks', 'cleanerpostexportprebuildpostbuild')
+ self.check_and_rm_file('../hooks', 'cleanerpreexportpostexportprebuildpostbuild')
shutil.rmtree('../rpmbuild')
# All hooks are run when building
eq_(mock_gbp(args + ['--git-tag', '--git-packaging-tag=tag2']), 0)
self.check_and_rm_file('../hooks',
- 'cleanerpostexportprebuildpostbuildposttag')
+ 'cleanerpreexportpostexportprebuildpostbuildposttag')
shutil.rmtree('../rpmbuild')
# Run with hooks disabled