view test/test_debian.py @ 251:243f206574cb

Make bin/listpackages.py prefer the newest packages by start-time, not revision number. Change test_listpackages.py so that it uses more realistic status files for the individual revisions and adapt the test cases to the new behavior.
author Bernhard Herzog <bh@intevation.de>
date Thu, 09 Apr 2009 18:59:44 +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)