diff test/test_debian.py @ 196:86ea689eda5f

Extend debian/control file parser to cope with more real-world file. Add some test cases.
author Bernhard Herzog <bh@intevation.de>
date Fri, 01 Aug 2008 19:54:58 +0000
parents e1c7cd896310
children b1525ac52e27
line wrap: on
line diff
--- a/test/test_debian.py	Thu Jul 31 10:36:17 2008 +0000
+++ b/test/test_debian.py	Fri Aug 01 19:54:58 2008 +0000
@@ -53,3 +53,121 @@
         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)