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)
    def test_pristine_tar_upstream_signatures_without(self):
        """Test that exporting upstream signatures in pristine tar works without imported signature"""
        pkg = 'hello-debhelper'
        dsc = self._dsc_name(pkg, '2.6-1', 'dsc-3.0')
        files = ["%s_2.6.orig.tar.gz" % pkg, "%s_2.6.orig.tar.gz.asc" % pkg]

        assert import_dsc(['arg0', '--pristine-tar', dsc]) == 0
        ComponentTestGitRepository(pkg)
        os.chdir(pkg)
        for f in files:
            self.assertFalse(os.path.exists(os.path.join('..', f)),
                             "File %s must not exist" % f)

        ret = export_orig(
            ['arg0', '--pristine-tar', '--upstream-signatures=no'])
        ok_(ret == 0, "Exporting tarballs failed")
        self.assertTrue(os.path.exists(os.path.join('..', files[0])),
                        "Tarball %s not found" % files[0])
        self.assertFalse(os.path.exists(os.path.join('..', files[1])),
                         "Signature %s found" % files[1])

        os.remove(os.path.join('..', files[0]))
        for f in files:
            self.assertFalse(os.path.exists(os.path.join('..', f)),
                             "File %s must not exist" % f)

        ret = export_orig(
            ['arg0', '--pristine-tar', '--upstream-signatures=auto'])
        ok_(ret == 0, "Exporting tarballs failed")
        self.assertTrue(os.path.exists(os.path.join('..', files[0])),
                        "Tarball %s not found" % files[0])
        self.assertFalse(os.path.exists(os.path.join('..', files[1])),
                         "Signature %s found" % files[1])

        os.remove(os.path.join('..', files[0]))
        for f in files:
            self.assertFalse(os.path.exists(os.path.join('..', f)),
                             "File %s must not exist" % f)

        ret = export_orig(
            ['arg0', '--pristine-tar', '--upstream-signatures=on'])
        ok_(ret == 1, "Exporting tarballs must fail")
        self._check_log(
            -1,
            "gbp:error: Can not find requested upstream signature for archive "
            "'hello-debhelper_2.6.orig.tar.gz' in pristine tar commit.")
    def test_pristine_tar_commit_on_origin(self, repo):
        """Test that we can create tarball from 'origin/pristine-tar'"""

        assert_true(repo.has_branch('pristine-tar'),
                    "Pristine-tar branch must exist in origin")
        dest = os.path.join(self._tmpdir, 'cloned_repo')
        clone(['arg0', repo.path, dest])
        cloned = ComponentTestGitRepository(dest)

        os.chdir(cloned.path)
        assert_false(cloned.has_branch('pristine-tar'),
                     "Pristine-tar branch must not exist in clone")
        ret = export_orig(['arg0', '--pristine-tar'])
        ok_(ret == 0, "Exporting tarballs must not fail")
示例#4
0
    def test_git_archive_tree_non_existent(self):
        """Test that we're failing tarball generation when commits are missing"""
        pkg = 'hello-debhelper'
        dsc = self._dsc_name(pkg, '2.8-1', 'dsc-3.0-additional-tarballs')

        assert import_dsc(['arg0', '--no-pristine-tar', dsc]) == 0
        repo = ComponentTestGitRepository(pkg)
        os.chdir(pkg)
        assert_false(repo.has_branch('pristine-tar'), "Pristine-tar branch not must exist")
        ret = export_orig(['arg0',
                           '--component=bar',  # non-existing component
                           '--no-pristine-tar'])
        ok_(ret == 1, "Exporting tarballs must fail")
        self._check_log(-1, "gbp:error: No tree for 'bar' found in "
                        "'upstream/2.8' to create additional tarball from")
示例#5
0
    def test_pristine_tar_commit_non_existent(self):
        """Test that we're failing if pristine-tar commit is missing"""
        pkg = 'hello-debhelper'
        dsc = self._dsc_name(pkg, '2.8-1', 'dsc-3.0-additional-tarballs')

        assert import_dsc(['arg0', '--pristine-tar', dsc]) == 0
        repo = ComponentTestGitRepository(pkg)
        os.chdir(pkg)
        assert_true(repo.has_branch('pristine-tar'),
                    "Pristine-tar branch must exist")
        repo.delete_branch("pristine-tar")
        repo.create_branch(
            "pristine-tar")  # create a nonsense pristine-tar branch
        ret = export_orig(['arg0', '--component=foo', '--pristine-tar'])
        ok_(ret == 1, "Exporting tarballs must fail")
        self._check_log(-1, ".*git show refs/heads/pristine-tar:.*failed")
示例#6
0
    def test_pristine_tar_commit_non_existent(self):
        """Test that we're failing if pristine-tar commit is missing"""
        pkg = 'hello-debhelper'
        dsc = self._dsc_name(pkg, '2.8-1', 'dsc-3.0-additional-tarballs')

        assert import_dsc(['arg0', '--pristine-tar', dsc]) == 0
        repo = ComponentTestGitRepository(pkg)
        os.chdir(pkg)
        assert_true(repo.has_branch('pristine-tar'), "Pristine-tar branch must exist")
        repo.delete_branch("pristine-tar")
        repo.create_branch("pristine-tar")  # create a nonsense pristine-tar branch
        ret = export_orig(['arg0',
                           '--component=foo',
                           '--pristine-tar'])
        ok_(ret == 1, "Exporting tarballs must fail")
        self._check_log(-1, ".*git show refs/heads/pristine-tar:.*failed")
示例#7
0
    def test_git_archive_tree_non_existent(self):
        """Test that we're failing tarball generation when commits are missing"""
        pkg = 'hello-debhelper'
        dsc = self._dsc_name(pkg, '2.8-1', 'dsc-3.0-additional-tarballs')

        assert import_dsc(['arg0', '--no-pristine-tar', dsc]) == 0
        repo = ComponentTestGitRepository(pkg)
        os.chdir(pkg)
        assert_false(repo.has_branch('pristine-tar'),
                     "Pristine-tar branch not must exist")
        ret = export_orig([
            'arg0',
            '--component=bar',  # non-existing component
            '--no-pristine-tar'
        ])
        ok_(ret == 1, "Exporting tarballs must fail")
        self._check_log(
            -1, "gbp:error: No tree for 'bar' found in "
            "'upstream/2.8' to create additional tarball from")
示例#8
0
    def test_component_generation(self):
        """Test that generating tarball and additional tarball works without pristine-tar"""
        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
        repo = ComponentTestGitRepository(pkg)
        os.chdir(pkg)
        assert_false(repo.has_branch('pristine-tar'), "Pristine-tar branch must not exist")
        for t in tarballs:
            self.assertFalse(os.path.exists(t), "Tarball %s must not exist" % t)
        ret = export_orig(['arg0',
                           '--component=foo',
                           '--no-pristine-tar'])
        ok_(ret == 0, "Exporting tarballs failed")
        for t in tarballs:
            self.assertTrue(os.path.exists(t), "Tarball %s not found" % t)
示例#9
0
    def test_component_generation(self):
        """Test that generating tarball and additional tarball works without pristine-tar"""
        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
        repo = ComponentTestGitRepository(pkg)
        os.chdir(pkg)
        assert_false(repo.has_branch('pristine-tar'),
                     "Pristine-tar branch must not exist")
        for t in tarballs:
            self.assertFalse(os.path.exists(t),
                             "Tarball %s must not exist" % t)
        ret = export_orig(['arg0', '--component=foo', '--no-pristine-tar'])
        ok_(ret == 0, "Exporting tarballs failed")
        for t in tarballs:
            self.assertTrue(os.path.exists(t), "Tarball %s not found" % t)
示例#10
0
    def test_pristinetar_component_generation(self):
        """Test that generating tarball and additional tarball works with pristine-tar"""
        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', '--pristine-tar', dsc]) == 0
        repo = ComponentTestGitRepository(pkg)
        os.chdir(pkg)
        assert_true(repo.has_branch('pristine-tar'), "Pristine-tar branch must exist")
        for t in tarballs:
            self.assertFalse(os.path.exists(t), "Tarball %s must not exist" % t)
        #  Make sure the tree object for importing the main tarball is recreated
        repo.collect_garbage(prune='all', aggressive=True)
        ret = export_orig(['arg0',
                           '--component=foo',
                           '--pristine-tar'])
        ok_(ret == 0, "Exporting tarballs failed")
        for t in tarballs:
            self.assertTrue(os.path.exists(t), "Tarball %s not found" % t)
示例#11
0
    def test_pristinetar_component_generation(self):
        """Test that generating tarball and additional tarball works with pristine-tar"""
        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', '--pristine-tar', dsc]) == 0
        repo = ComponentTestGitRepository(pkg)
        os.chdir(pkg)
        assert_true(repo.has_branch('pristine-tar'),
                    "Pristine-tar branch must exist")
        for t in tarballs:
            self.assertFalse(os.path.exists(t),
                             "Tarball %s must not exist" % t)
        #  Make sure the tree object for importing the main tarball is recreated
        repo.collect_garbage(prune='all', aggressive=True)
        ret = export_orig(['arg0', '--component=foo', '--pristine-tar'])
        ok_(ret == 0, "Exporting tarballs failed")
        for t in tarballs:
            self.assertTrue(os.path.exists(t), "Tarball %s not found" % t)
示例#12
0
    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)