summaryrefslogtreecommitdiffhomepage
path: root/tests/component
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2017-08-08 17:47:40 -0300
committerGuido Günther <agx@sigxcpu.org>2017-08-08 17:52:17 -0300
commitda42f704378a0fcc14a94beeecad98110d73d24a (patch)
tree1dd4d26383e58453093c5f8877221925a95aff8c /tests/component
parent66138d953fe6c9221e32577ac3bd66bc4072499a (diff)
buildpackge: add test for overlay mode
Diffstat (limited to 'tests/component')
-rw-r--r--tests/component/deb/fixtures.py30
-rw-r--r--tests/component/deb/test_buildpackage.py15
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