bh@127: # Copyright (C) 2008 by Intevation GmbH bh@127: # Authors: bh@127: # Bernhard Herzog bh@127: # bh@127: # This program is free software under the GPL (>=v2) bh@127: # Read the file COPYING coming with the software for details. bh@127: bh@127: """Tests for treepkg.debian""" bh@127: bh@127: import unittest bh@127: bh@127: from filesupport import FileTestMixin bh@127: bh@127: from treepkg.debian import DebianControlFile bh@127: bh@127: bh@203: class TestDebianControlFileSimple(unittest.TestCase, FileTestMixin): bh@127: bh@127: control_contents = """\ bh@127: Source: libksba bh@127: Section: libs bh@127: Priority: optional bh@127: Maintainer: Kolab-Konsortium Packager bh@127: Uploaders: Removed for the test bh@127: Build-Depends: debhelper (>= 4.2), libgpg-error-dev (>= 1.2), bison, autotools-dev, cdbs bh@127: Standards-Version: 3.7.2 bh@127: bh@127: Package: libksba-dev bh@127: Section: libdevel bh@127: Architecture: any bh@127: Depends: libksba8 (>= ${Source-Version}) bh@127: Replaces: libksba0 bh@127: Description: Test description bh@127: Some more text. bh@127: . bh@127: Development library files. bh@127: bh@127: Package: libksba8 bh@127: Section: libs bh@127: Architecture: any bh@127: Depends: ${shlibs:Depends}, ${misc:Depends} bh@127: Description: Test description bh@127: Some more text. bh@127: . bh@127: Runtime library files. bh@127: """ bh@127: bh@127: def test(self): bh@185: filename = self.create_temp_file("control", self.control_contents) bh@127: parsed = DebianControlFile(filename) bh@127: self.assertEquals(parsed.packages, bh@127: [('libksba-dev', 'any'), ('libksba8', 'any')]) bh@127: self.assertEquals(parsed.build_depends, bh@127: ['debhelper', 'libgpg-error-dev', 'bison', bh@127: 'autotools-dev', 'cdbs']) bh@196: bh@196: bh@196: class TestDebianControlFileBuildDepsWithContinuation(unittest.TestCase, bh@196: FileTestMixin): bh@196: bh@196: control_contents = """\ bh@196: Source: kdebase bh@196: Section: kde bh@196: Priority: optional bh@196: Maintainer: Kolab-Konsortium Packager bh@196: Build-Depends: cdbs (>= 0.4.51), debhelper (>= 6), quilt, cmake (>= 2.4.5), bh@196: kdepimlibs5-dev (>= 4:4.0.84), libphonon-dev (>= 4:4.2~), bh@196: libplasma-dev (>= 4:4.0.84), libqimageblitz-dev (>= 1:0.0.4-2), bh@196: libsmbclient-dev, libusb-dev, libxkbfile-dev, libraw1394-dev, bh@196: libstreamanalyzer-dev, libxrender-dev, zlib1g-dev, libglu1-mesa-dev, bh@196: libpci-dev, libxt-dev, libxext-dev, pkg-config, libglib2.0-dev bh@196: Standards-Version: 3.7.3 bh@196: bh@196: Package: kdebase bh@196: Section: kde bh@196: Architecture: all bh@196: Description: base applications from the official KDE release bh@196: """ bh@196: bh@196: def test(self): bh@196: filename = self.create_temp_file("control", self.control_contents) bh@196: parsed = DebianControlFile(filename) bh@196: self.assertEquals(parsed.packages, bh@196: [('kdebase', 'all')]) bh@196: self.assertEquals(parsed.build_depends, bh@196: ['cdbs', 'debhelper', 'quilt', 'cmake', bh@196: 'kdepimlibs5-dev', 'libphonon-dev', 'libplasma-dev', bh@196: 'libqimageblitz-dev', 'libsmbclient-dev', bh@196: 'libusb-dev', 'libxkbfile-dev', 'libraw1394-dev', bh@196: 'libstreamanalyzer-dev', 'libxrender-dev', bh@196: 'zlib1g-dev', 'libglu1-mesa-dev', 'libpci-dev', bh@196: 'libxt-dev', 'libxext-dev', 'pkg-config', bh@196: 'libglib2.0-dev']) bh@196: bh@196: bh@196: class TestDebianControlFileWithComments(unittest.TestCase, FileTestMixin): bh@196: bh@196: control_contents = """\ bh@196: Source: kdebase bh@196: Section: kde bh@196: Priority: optional bh@196: Maintainer: Kolab-Konsortium Packager bh@196: Build-Depends: cdbs (>= 0.4.51), debhelper (>= 6), quilt, cmake (>= 2.4.5), bh@196: kdepimlibs5-dev (>= 4:4.0.84), libphonon-dev (>= 4:4.2~), libplasma-dev (>= 4:4.0.84), bh@196: libqimageblitz-dev (>= 1:0.0.4-2), libsmbclient-dev, libusb-dev, libxkbfile-dev, bh@196: libraw1394-dev, libstreamanalyzer-dev, libxrender-dev, zlib1g-dev, libglu1-mesa-dev, bh@196: libpci-dev, libxt-dev, libxext-dev, pkg-config, libglib2.0-dev bh@196: Standards-Version: 3.7.3 bh@196: bh@196: # commented out bh@196: # Package: foo bh@196: # Section: kde bh@196: # Architecture: all bh@196: bh@196: Package: kdebase bh@196: Section: kde bh@196: Architecture: all bh@196: Description: base applications from the official KDE release bh@196: """ bh@196: bh@196: def test(self): bh@196: filename = self.create_temp_file("control", self.control_contents) bh@196: parsed = DebianControlFile(filename) bh@196: self.assertEquals(parsed.packages, bh@196: [('kdebase', 'all')]) bh@196: self.assertEquals(parsed.build_depends, bh@196: ['cdbs', 'debhelper', 'quilt', 'cmake', bh@196: 'kdepimlibs5-dev', 'libphonon-dev', 'libplasma-dev', bh@196: 'libqimageblitz-dev', 'libsmbclient-dev', bh@196: 'libusb-dev', 'libxkbfile-dev', 'libraw1394-dev', bh@196: 'libstreamanalyzer-dev', 'libxrender-dev', bh@196: 'zlib1g-dev', 'libglu1-mesa-dev', 'libpci-dev', bh@196: 'libxt-dev', 'libxext-dev', 'pkg-config', bh@196: 'libglib2.0-dev']) bh@196: bh@196: bh@196: class TestDebianControlFileWithExtraEmptyLines(unittest.TestCase, bh@196: FileTestMixin): bh@196: bh@196: control_contents = """\ bh@196: Source: kdebase bh@196: Section: kde bh@196: Priority: optional bh@196: Maintainer: Kolab-Konsortium Packager bh@196: Build-Depends: cdbs (>= 0.4.51), debhelper (>= 6), quilt, cmake (>= 2.4.5), bh@196: kdepimlibs5-dev (>= 4:4.0.84), libphonon-dev (>= 4:4.2~), libplasma-dev (>= 4:4.0.84), bh@196: libqimageblitz-dev (>= 1:0.0.4-2), libsmbclient-dev, libusb-dev, libxkbfile-dev, bh@196: libraw1394-dev, libstreamanalyzer-dev, libxrender-dev, zlib1g-dev, libglu1-mesa-dev, bh@196: libpci-dev, libxt-dev, libxext-dev, pkg-config, libglib2.0-dev bh@196: Standards-Version: 3.7.3 bh@196: bh@196: bh@196: Package: kdebase bh@196: Section: kde bh@196: Architecture: all bh@196: Description: base applications from the official KDE release bh@196: bh@196: """ bh@196: bh@196: def test(self): bh@196: filename = self.create_temp_file("control", self.control_contents) bh@196: parsed = DebianControlFile(filename) bh@196: self.assertEquals(parsed.packages, bh@196: [('kdebase', 'all')]) bh@196: self.assertEquals(parsed.build_depends, bh@196: ['cdbs', 'debhelper', 'quilt', 'cmake', bh@196: 'kdepimlibs5-dev', 'libphonon-dev', 'libplasma-dev', bh@196: 'libqimageblitz-dev', 'libsmbclient-dev', bh@196: 'libusb-dev', 'libxkbfile-dev', 'libraw1394-dev', bh@196: 'libstreamanalyzer-dev', 'libxrender-dev', bh@196: 'zlib1g-dev', 'libglu1-mesa-dev', 'libpci-dev', bh@196: 'libxt-dev', 'libxext-dev', 'pkg-config', bh@196: 'libglib2.0-dev'])