diff options
author | Guido Günther <agx@sigxcpu.org> | 2017-08-08 17:47:40 -0300 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2017-08-08 17:52:17 -0300 |
commit | da42f704378a0fcc14a94beeecad98110d73d24a (patch) | |
tree | 1dd4d26383e58453093c5f8877221925a95aff8c /tests/component | |
parent | 66138d953fe6c9221e32577ac3bd66bc4072499a (diff) |
buildpackge: add test for overlay mode
Diffstat (limited to 'tests/component')
-rw-r--r-- | tests/component/deb/fixtures.py | 30 | ||||
-rw-r--r-- | tests/component/deb/test_buildpackage.py | 15 |
2 files changed, 44 insertions, 1 deletions
diff --git a/tests/component/deb/fixtures.py b/tests/component/deb/fixtures.py index 710372e7..cec34476 100644 --- a/tests/component/deb/fixtures.py +++ b/tests/component/deb/fixtures.py @@ -24,6 +24,8 @@ from tests.component.deb import DEB_TEST_DATA_DIR from nose.tools import eq_ +from gbp.command_wrappers import UnpackTarArchive +from gbp.git import GitRepository from gbp.deb.dscfile import DscFile from gbp.scripts.import_dsc import main as import_dsc @@ -35,6 +37,10 @@ DEFAULT_QUILT30 = os.path.join(DEB_TEST_DATA_DIR, 'dsc-3.0', 'hello-debhelper_%s.dsc' % '2.8-1') +DEFAULT_OVERLAY = os.path.join(DEB_TEST_DATA_DIR, + 'dsc-3.0', + 'hello-debhelper_%s.debian.tar.gz' % '2.8-1') + class RepoFixtures(object): @classmethod @@ -60,6 +66,17 @@ class RepoFixtures(object): return wrapper @classmethod + def overlay(cls, debian=DEFAULT_OVERLAY, opts=None): + """Decorator to be used as overay mode test fixture""" + def wrapper(fn): + @wraps(fn) + def _overlay_mode_repo(*args): + repo = cls.import_debian_tarball(debian, opts) + return fn(*args, repo=repo) + return _overlay_mode_repo + return wrapper + + @classmethod def _import_one(cls, dsc, opts): opts = opts or [] assert import_dsc(['arg0'] + opts + [dsc]) == 0 @@ -86,3 +103,16 @@ class RepoFixtures(object): eq_(len(repo.get_commits()), 2) os.chdir(repo.path) return repo + + @classmethod + def import_debian_tarball(cls, debian=DEFAULT_OVERLAY, opts=None): + """Import a 3.0 (quilt) debian dir for overlay mode""" + repo = GitRepository.create(os.path.split('/')[-1].split('_')[0]) + UnpackTarArchive(debian, repo.path)() + repo.add_files('.') + repo.commit_files('.', msg="debian dir") + expected_branches = ['master'] + ComponentTestBase._check_repo_state(repo, 'master', expected_branches) + eq_(len(repo.get_commits()), 1) + os.chdir(repo.path) + return repo diff --git a/tests/component/deb/test_buildpackage.py b/tests/component/deb/test_buildpackage.py index faeea3bb..c2dec9b9 100644 --- a/tests/component/deb/test_buildpackage.py +++ b/tests/component/deb/test_buildpackage.py @@ -24,7 +24,8 @@ import tarfile from tests.component import (ComponentTestBase, ComponentTestGitRepository) from tests.component.deb import DEB_TEST_DATA_DIR -from tests.component.deb.fixtures import RepoFixtures +from tests.component.deb.fixtures import (RepoFixtures, + DEFAULT_OVERLAY) from nose.tools import ok_, eq_, assert_false, assert_true @@ -162,6 +163,18 @@ class TestBuildpackage(ComponentTestBase): self._test_buildpackage(repo, ['--git-export-dir=../foo/bar']) ok_(os.path.exists('../foo/bar')) + @RepoFixtures.overlay() + def test_export_dir_overlay(self, repo): + """Test that building in overlay mode with export dir works""" + tarball_dir = os.path.dirname(DEFAULT_OVERLAY) + self._test_buildpackage(repo, ['--git-overlay', + '--git-compression=gzip', + '--git-tarball-dir=%s' % tarball_dir, + '--git-no-purge', + '--git-export-dir=../foo']) + ok_(os.path.exists('../foo/hello-debhelper-2.8/configure')) + ok_(os.path.exists('../foo/hello-debhelper-2.8/debian/changelog')) + @RepoFixtures.quilt30() def test_export_wc_buildpackage(self, repo): """Test that exporting working copy works and it ignores |