view test/test_debian.py @ 441:eadcb1bb54e2

Merged revisions 388-399 via svnmerge from svn+ssh://svn.wald.intevation.org/treepkg/branches/treepkg-status ........ r388 | bricks | 2010-07-28 10:38:50 +0200 (Mi, 28 Jul 2010) | 3 lines fix if statement upload hook should be called if it's not empty ........ r389 | bricks | 2010-07-28 13:38:00 +0200 (Mi, 28 Jul 2010) | 2 lines only rsync specified architectures from cachedir to publishdir ........ r390 | bricks | 2010-07-29 14:07:57 +0200 (Do, 29 Jul 2010) | 2 lines introduced after_copy_hook and made rsync upload to publishdir optional ........ r391 | bricks | 2010-07-29 15:43:39 +0200 (Do, 29 Jul 2010) | 3 lines publish package must be default to get original behaviour be more verbose at publishing ........ r392 | bricks | 2010-07-29 16:50:53 +0200 (Do, 29 Jul 2010) | 2 lines fix handling of showing only successfull builds together with num packages ........ r393 | bricks | 2010-07-29 16:52:42 +0200 (Do, 29 Jul 2010) | 2 lines fixed typo ........ r394 | bricks | 2010-07-29 16:59:10 +0200 (Do, 29 Jul 2010) | 2 lines fixed another typo ........ r395 | bricks | 2010-07-29 18:05:54 +0200 (Do, 29 Jul 2010) | 3 lines fixed another typo treepkg is really slow with many revisions ........ r396 | bricks | 2010-08-02 12:41:55 +0200 (Mo, 02 Aug 2010) | 2 lines fixed typos ........ r397 | bricks | 2010-08-02 17:36:12 +0200 (Mo, 02 Aug 2010) | 3 lines be more error prone in listing different files not checking if a dir exists caused several errors if a build wasn't successful ........ r398 | bricks | 2010-08-05 18:21:47 +0200 (Do, 05 Aug 2010) | 2 lines review changes ........ r399 | bricks | 2010-08-06 13:06:08 +0200 (Fr, 06 Aug 2010) | 4 lines cleanup modules fix test_info testcases added testcases for remove_trailingslashes and expand_filename ........
author Bjoern Ricks <bricks@intevation.de>
date Fri, 06 Aug 2010 13:41:54 +0000
parents b1525ac52e27
children
line wrap: on
line source
# Copyright (C) 2008 by Intevation GmbH
# Authors:
# Bernhard Herzog <bh@intevation.de>
#
# This program is free software under the GPL (>=v2)
# Read the file COPYING coming with the software for details.

"""Tests for treepkg.debian"""

import unittest

from filesupport import FileTestMixin

from treepkg.debian import DebianControlFile


class TestDebianControlFileSimple(unittest.TestCase, FileTestMixin):

    control_contents = """\
Source: libksba
Section: libs
Priority: optional
Maintainer: Kolab-Konsortium Packager <packaging@kolab-konsortium.de>
Uploaders: Removed for the test
Build-Depends: debhelper (>= 4.2), libgpg-error-dev (>= 1.2), bison, autotools-dev, cdbs
Standards-Version: 3.7.2

Package: libksba-dev
Section: libdevel
Architecture: any
Depends: libksba8 (>= ${Source-Version})
Replaces: libksba0
Description: Test description
 Some more text.
 .
 Development library files.

Package: libksba8
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Test description
 Some more text.
 .
 Runtime library files.
"""

    def test(self):
        filename = self.create_temp_file("control", self.control_contents)
        parsed = DebianControlFile(filename)
        self.assertEquals(parsed.packages,
                          [('libksba-dev', 'any'), ('libksba8', 'any')])
        self.assertEquals(parsed.build_depends,
                          ['debhelper', 'libgpg-error-dev', 'bison',
                           'autotools-dev', 'cdbs'])


class TestDebianControlFileBuildDepsWithContinuation(unittest.TestCase,
                                                     FileTestMixin):

    control_contents = """\
Source: kdebase
Section: kde
Priority: optional
Maintainer: Kolab-Konsortium Packager <packaging@kolab-konsortium.de>
Build-Depends: cdbs (>= 0.4.51), debhelper (>= 6), quilt, cmake (>= 2.4.5),
 kdepimlibs5-dev (>= 4:4.0.84), libphonon-dev (>= 4:4.2~),
 libplasma-dev (>= 4:4.0.84), libqimageblitz-dev (>= 1:0.0.4-2),
 libsmbclient-dev, libusb-dev, libxkbfile-dev, libraw1394-dev,
 libstreamanalyzer-dev, libxrender-dev, zlib1g-dev, libglu1-mesa-dev, 
 libpci-dev, libxt-dev, libxext-dev, pkg-config, libglib2.0-dev
Standards-Version: 3.7.3

Package: kdebase
Section: kde
Architecture: all
Description: base applications from the official KDE release
"""

    def test(self):
        filename = self.create_temp_file("control", self.control_contents)
        parsed = DebianControlFile(filename)
        self.assertEquals(parsed.packages,
                          [('kdebase', 'all')])
        self.assertEquals(parsed.build_depends,
                          ['cdbs', 'debhelper', 'quilt', 'cmake',
                           'kdepimlibs5-dev', 'libphonon-dev', 'libplasma-dev',
                           'libqimageblitz-dev', 'libsmbclient-dev',
                           'libusb-dev', 'libxkbfile-dev', 'libraw1394-dev',
                           'libstreamanalyzer-dev', 'libxrender-dev',
                           'zlib1g-dev', 'libglu1-mesa-dev', 'libpci-dev',
                           'libxt-dev', 'libxext-dev', 'pkg-config',
                           'libglib2.0-dev'])


class TestDebianControlFileWithComments(unittest.TestCase, FileTestMixin):

    control_contents = """\
Source: kdebase
Section: kde
Priority: optional
Maintainer: Kolab-Konsortium Packager <packaging@kolab-konsortium.de>
Build-Depends: cdbs (>= 0.4.51), debhelper (>= 6), quilt, cmake (>= 2.4.5),
 kdepimlibs5-dev (>= 4:4.0.84), libphonon-dev (>= 4:4.2~), libplasma-dev (>= 4:4.0.84),
 libqimageblitz-dev (>= 1:0.0.4-2), libsmbclient-dev, libusb-dev, libxkbfile-dev,
 libraw1394-dev, libstreamanalyzer-dev, libxrender-dev, zlib1g-dev, libglu1-mesa-dev, 
 libpci-dev, libxt-dev, libxext-dev, pkg-config, libglib2.0-dev
Standards-Version: 3.7.3

# commented out
# Package: foo
# Section: kde
# Architecture: all

Package: kdebase
Section: kde
Architecture: all
Description: base applications from the official KDE release
"""

    def test(self):
        filename = self.create_temp_file("control", self.control_contents)
        parsed = DebianControlFile(filename)
        self.assertEquals(parsed.packages,
                          [('kdebase', 'all')])
        self.assertEquals(parsed.build_depends,
                          ['cdbs', 'debhelper', 'quilt', 'cmake',
                           'kdepimlibs5-dev', 'libphonon-dev', 'libplasma-dev',
                           'libqimageblitz-dev', 'libsmbclient-dev',
                           'libusb-dev', 'libxkbfile-dev', 'libraw1394-dev',
                           'libstreamanalyzer-dev', 'libxrender-dev',
                           'zlib1g-dev', 'libglu1-mesa-dev', 'libpci-dev',
                           'libxt-dev', 'libxext-dev', 'pkg-config',
                           'libglib2.0-dev'])


class TestDebianControlFileWithExtraEmptyLines(unittest.TestCase,
                                               FileTestMixin):

    control_contents = """\
Source: kdebase
Section: kde
Priority: optional
Maintainer: Kolab-Konsortium Packager <packaging@kolab-konsortium.de>
Build-Depends: cdbs (>= 0.4.51), debhelper (>= 6), quilt, cmake (>= 2.4.5),
 kdepimlibs5-dev (>= 4:4.0.84), libphonon-dev (>= 4:4.2~), libplasma-dev (>= 4:4.0.84),
 libqimageblitz-dev (>= 1:0.0.4-2), libsmbclient-dev, libusb-dev, libxkbfile-dev,
 libraw1394-dev, libstreamanalyzer-dev, libxrender-dev, zlib1g-dev, libglu1-mesa-dev, 
 libpci-dev, libxt-dev, libxext-dev, pkg-config, libglib2.0-dev
Standards-Version: 3.7.3


Package: kdebase
Section: kde
Architecture: all
Description: base applications from the official KDE release

"""

    def test(self):
        filename = self.create_temp_file("control", self.control_contents)
        parsed = DebianControlFile(filename)
        self.assertEquals(parsed.packages,
                          [('kdebase', 'all')])
        self.assertEquals(parsed.build_depends,
                          ['cdbs', 'debhelper', 'quilt', 'cmake',
                           'kdepimlibs5-dev', 'libphonon-dev', 'libplasma-dev',
                           'libqimageblitz-dev', 'libsmbclient-dev',
                           'libusb-dev', 'libxkbfile-dev', 'libraw1394-dev',
                           'libstreamanalyzer-dev', 'libxrender-dev',
                           'zlib1g-dev', 'libglu1-mesa-dev', 'libpci-dev',
                           'libxt-dev', 'libxext-dev', 'pkg-config',
                           'libglib2.0-dev'])
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)