From 1592882c38fcbb107332d9a0a63b8da4e0bf8a48 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Thu, 24 May 2018 15:15:29 +0200 Subject: gbp import-ref: New command to merge in changes from a upstream using git --- tests/01_test_help.py | 4 +- tests/component/deb/test_import_ref.py | 87 ++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 tests/component/deb/test_import_ref.py (limited to 'tests') diff --git a/tests/01_test_help.py b/tests/01_test_help.py index de930137..25c36fb0 100644 --- a/tests/01_test_help.py +++ b/tests/01_test_help.py @@ -15,13 +15,13 @@ class TestHelp(TestCaseWithData): 'create_remote_repo', 'dch', 'import_orig', + 'import_ref', 'import_dsc', 'pristine_tar', 'pull', 'push', 'pq', - 'tag', - ] + 'tag'] rpm_cmds = ['buildpackage_rpm', 'import_srpm', diff --git a/tests/component/deb/test_import_ref.py b/tests/component/deb/test_import_ref.py new file mode 100644 index 00000000..260a8be1 --- /dev/null +++ b/tests/component/deb/test_import_ref.py @@ -0,0 +1,87 @@ +# vim: set fileencoding=utf-8 : +# +# (C) 2015,2017 Guido Günther +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, please see +# + +import os + +from tests.component import ComponentTestBase +from tests.component.deb import DEB_TEST_DATA_DIR +from tests.component.deb.fixtures import RepoFixtures + +from gbp.scripts.import_ref import main as import_ref + +from nose.tools import ok_, eq_ + + +def _dsc_file(pkg, version, dir='dsc-3.0'): + return os.path.join(DEB_TEST_DATA_DIR, dir, '%s_%s.dsc' % (pkg, version)) + + +DEFAULT_DSC = _dsc_file('hello-debhelper', '2.6-2') + + +class TestImportRef(ComponentTestBase): + """Test importing of new upstream versions""" + pkg = "hello-debhelper" + def_branches = ['master', 'upstream', 'pristine-tar'] + + def _orig(self, version, dir='dsc-3.0'): + return os.path.join(DEB_TEST_DATA_DIR, + dir, + '%s_%s.orig.tar.gz' % (self.pkg, version)) + + @RepoFixtures.quilt30(DEFAULT_DSC, opts=['--pristine-tar']) + def test_from_branch(self, repo): + """ + Test that importing a upstream git from a branch works + """ + eq_(len(repo.get_commits()), 2) + ok_(import_ref(['arg0', + '--upstream-tree=BRANCH', + '--upstream-tag=theupstream/%(version)s', + '-uaversion']) == 0) + self._check_repo_state(repo, 'master', self.def_branches, + tags=['debian/2.6-2', 'theupstream/aversion', 'upstream/2.6']) + eq_(len(repo.get_commits()), 3) + + @RepoFixtures.quilt30(DEFAULT_DSC, opts=['--pristine-tar']) + def test_from_version(self, repo): + """ + Test that importing a upstream git from a given version works + """ + eq_(len(repo.get_commits()), 2) + ok_(import_ref(['arg0', + '--upstream-tree=VERSION', + '--upstream-tag=upstream/%(version)s', + '-u2.6']) == 0) + self._check_repo_state(repo, 'master', self.def_branches, + tags=['debian/2.6-2', 'upstream/2.6']) + eq_(len(repo.get_commits()), 3) + + @RepoFixtures.quilt30(DEFAULT_DSC, opts=['--pristine-tar']) + def test_from_committish(self, repo): + """ + Test that importing a upstream git from another commit works + """ + eq_(len(repo.get_commits()), 2) + ok_(import_ref(['arg0', + '--upstream-tree=upstream', + '--upstream-tag=upstream/%(version)s', + '-u2.6']) == 0) + self._check_repo_state(repo, 'master', self.def_branches, + tags=['debian/2.6-2', 'upstream/2.6']) + eq_(len(repo.get_commits()), 3) -- cgit v1.2.3