[python-debian/master] bugfix: avoid setting version:None eagerly in deps

Stefano Zacchiroli zack at upsilon.cc
Sat Jun 21 07:38:26 UTC 2008


Thus far, due to a copy&paste error in a dictionary label, non
architecture-specific relations always got version set to None (instead
of getting _architecture_ set to None).

Update the test case accordingly.
---
 debian_bundle/deb822.py |    2 +-
 tests/test_Packages     |   17 +++++++
 tests/test_deb822.py    |  107 ++++++++++++++++++++++++++---------------------
 3 files changed, 77 insertions(+), 49 deletions(-)

diff --git a/debian_bundle/deb822.py b/debian_bundle/deb822.py
index d67dcb8..5590481 100644
--- a/debian_bundle/deb822.py
+++ b/debian_bundle/deb822.py
@@ -435,7 +435,7 @@ class PkgRelation(object):
                 else:
                     d['version'] = None
                 if parts['archs'] is None:
-                    d['version'] = None
+                    d['arch'] = None
                 else:
                     d['arch'] = parse_archs(parts['archs'])
                 return d
diff --git a/tests/test_Packages b/tests/test_Packages
index 384e90e..6cbee8b 100644
--- a/tests/test_Packages
+++ b/tests/test_Packages
@@ -60,3 +60,20 @@ Description: interactive file transfers over ssh
   Homepage: http://zssh.sourceforge.net/
 Tag: hardware::modem, interface::commandline, protocol::ssh, role::program, scope::utility, uitoolkit::ncurses, use::downloading
 
+Package: dummy-package
+Priority: optional
+Section: net
+Installed-Size: 42
+Maintainer: Stefano Zacchiroli <zack at debian.org>
+Architecture: i386
+Version: 1.0
+Depends: dcoprss (>= 4:3.5.9-2), kdenetwork-kfile-plugins (>= 4:3.5.9-2), kdict (>= 4:3.5.9-2), kdnssd (>= 4:3.5.9-2), kget (>= 4:3.5.9-2), knewsticker (>= 4:3.5.9-2), kopete (>= 4:3.5.9-2), kpf (>= 4:3.5.9-2), kppp (>= 4:3.5.9-2), krdc (>= 4:3.5.9-2), krfb (>= 4:3.5.9-2), ksirc (>= 4:3.5.9-2), kwifimanager (>= 4:3.5.9-2), librss1 (>= 4:3.5.9-2)
+Filename: pool/main/d/dummy-package/dummy-package_1.0_i386.deb
+Size: 424242
+MD5sum: 21e4ac1bbdd405873aa969918e78b95c
+SHA1: 22b132fef92822e0bc8b612bbaf06165aa459bfc
+SHA256: 9d0d77df0312ef6487e0b06eb125446e130bd9de80df70ac0180abf7d4e4a0c5
+Description: inexistent dummy package, dep parsing test case
+ inexistent dummy package, dep parsing test case
+Tag: hardware::modem, interface::commandline, protocol::ssh, role::program, scope::utility, uitoolkit::ncurses, use::downloading
+
diff --git a/tests/test_deb822.py b/tests/test_deb822.py
index 07b49a1..781200f 100755
--- a/tests/test_deb822.py
+++ b/tests/test_deb822.py
@@ -492,40 +492,39 @@ class TestPkgRelations(unittest.TestCase):
         pkg1 = pkgs.next()
         rel1 = {'breaks': [],
                 'conflicts': [],
-                'depends': [[{'name': 'file', 'version': None}],
-                    [{'name': 'libc6', 'version': None}],
-                    [{'name': 'libpaper1', 'version': None}],
-                    [{'name': 'psutils', 'version': None}]],
+                'depends': [[{'name': 'file', 'version': None, 'arch': None}],
+                    [{'name': 'libc6', 'version': ('>=', '2.7-1'), 'arch': None}],
+                    [{'name': 'libpaper1', 'version': None, 'arch': None}],
+                    [{'name': 'psutils', 'version': None, 'arch': None}]],
                 'enhances': [],
                 'pre-depends': [],
                 'provides': [],
-                'recommends': [[{'name': 'bzip2', 'version': None}],
-                    [{'name': 'lpr', 'version': None},
-                        {'name': 'rlpr', 'version': None},
-                        {'name': 'cupsys-client', 'version': None}],
-                    [{'name': 'wdiff', 'version': None}]],
+                'recommends': [[{'name': 'bzip2', 'version': None, 'arch': None}],
+                    [{'name': 'lpr', 'version': None, 'arch': None},
+                        {'name': 'rlpr', 'version': None, 'arch': None},
+                        {'name': 'cupsys-client', 'version': None, 'arch': None}],
+                    [{'name': 'wdiff', 'version': None, 'arch': None}]],
                 'replaces': [],
-                'suggests': [[{'name': 'emacsen-common', 'version': None}],
-                    [{'name': 'ghostscript', 'version': None}],
-                    [{'name': 'graphicsmagick-imagemagick-compat',
-                        'version': None},
-                        {'name': 'imagemagick', 'version': None}],
-                    [{'name': 'groff', 'version': None}],
-                    [{'name': 'gv', 'version': None}],
-                    [{'name': 'html2ps', 'version': None}],
-                    [{'name': 't1-cyrillic', 'version': None}],
-                    [{'name': 'texlive-base-bin', 'version': None}]]}
+                'suggests': [[{'name': 'emacsen-common', 'version': None, 'arch': None}],
+                    [{'name': 'ghostscript', 'version': None, 'arch': None}],
+                    [{'name': 'graphicsmagick-imagemagick-compat', 'version': None, 'arch': None},
+                        {'name': 'imagemagick', 'version': None, 'arch': None}],
+                    [{'name': 'groff', 'version': None, 'arch': None}],
+                    [{'name': 'gv', 'version': None, 'arch': None}],
+                    [{'name': 'html2ps', 'version': None, 'arch': None}],
+                    [{'name': 't1-cyrillic', 'version': None, 'arch': None}],
+                    [{'name': 'texlive-base-bin', 'version': None, 'arch': None}]]}
         self.assertEqual(rel1, pkg1.relations)
         pkg2 = pkgs.next()
         rel2 = {'breaks': [],
                 'conflicts': [],
-                'depends': [[{'name': 'lrzsz', 'version': None}],
-                    [{'name': 'openssh-client', 'version': None},
-                        {'name': 'telnet', 'version': None},
-                        {'name': 'telnet-ssl', 'version': None}],
-                    [{'name': 'libc6', 'version': None}],
-                    [{'name': 'libncurses5', 'version': None}],
-                    [{'name': 'libreadline5', 'version': None}]],
+                'depends': [[{'name': 'lrzsz', 'version': None, 'arch': None}],
+                    [{'name': 'openssh-client', 'version': None, 'arch': None},
+                        {'name': 'telnet', 'version': None, 'arch': None},
+                        {'name': 'telnet-ssl', 'version': None, 'arch': None}],
+                    [{'name': 'libc6', 'version': ('>=', '2.6.1-1'), 'arch': None}],
+                    [{'name': 'libncurses5', 'version': ('>=', '5.6'), 'arch': None}],
+                    [{'name': 'libreadline5', 'version': ('>=', '5.2'), 'arch': None}]],
                 'enhances': [],
                 'pre-depends': [],
                 'provides': [],
@@ -533,41 +532,53 @@ class TestPkgRelations(unittest.TestCase):
                 'replaces': [],
                 'suggests': []}
         self.assertEqual(rel2, pkg2.relations)
+        pkg3 = pkgs.next()
+        dep3 = [[{'arch': None, 'name': 'dcoprss', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'kdenetwork-kfile-plugins', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'kdict', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'kdnssd', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'kget', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'knewsticker', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'kopete', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'kpf', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'kppp', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'krdc', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'krfb', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'ksirc', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'kwifimanager', 'version': ('>=', '4:3.5.9-2')}],
+            [{'arch': None, 'name': 'librss1', 'version': ('>=', '4:3.5.9-2')}]]
+        self.assertEqual(dep3, pkg3.relations['depends'])
 
     def test_sources(self):
         pkgs = deb822.Sources.iter_paragraphs(file('test_Sources'))
         pkg1 = pkgs.next()
         rel1 = {'build-conflicts': [],
                 'build-conflicts-indep': [],
-                'build-depends': [[{'name': 'apache2-src', 'version': None}],
-                    [{'name': 'libaprutil1-dev', 'version': None}],
-                    [{'arch': [(False, 'kfreebsd-i386'),
-                        (False, 'kfreebsd-amd64'),
-                        (False, 'hurd-i386')],
+                'build-depends': [[{'name': 'apache2-src', 'version': ('>=', '2.2.9'), 'arch': None}],
+                    [{'name': 'libaprutil1-dev', 'version': None, 'arch': None}],
+                    [{'arch': [(False, 'kfreebsd-i386'), (False, 'kfreebsd-amd64'), (False, 'hurd-i386')],
                         'name': 'libcap-dev',
                         'version': None}],
-                    [{'name': 'autoconf', 'version': None}],
-                    [{'name': 'debhelper', 'version': None}]],
+                    [{'name': 'autoconf', 'version': None, 'arch': None}],
+                    [{'name': 'debhelper', 'version': ('>>', '5.0.0'), 'arch': None}]],
                 'build-depends-indep': []}
         self.assertEqual(rel1, pkg1.relations)
         pkg2 = pkgs.next()
         rel2 = {'build-conflicts': [],
                 'build-conflicts-indep': [],
-                'build-depends': [[{'name': 'dpkg-dev', 'version': None}],
-                    [{'name': 'autoconf', 'version': None}],
-                    [{'name': 'bash', 'version': None}],
-                    [{'name': 'bison', 'version': None}],
-                    [{'name': 'flex', 'version': None}],
-                    [{'name': 'gettext', 'version': None}],
-                    [{'name': 'texinfo', 'version': None}],
-                    [{'arch': [(True, 'hppa')],
-                        'name': 'expect-tcl8.3',
-                        'version': ('>=', '5.32.2')}],
-                    [{'name': 'dejagnu', 'version': None}],
-                    [{'name': 'dpatch', 'version': None}],
-                    [{'name': 'file', 'version': None}],
-                    [{'name': 'bzip2', 'version': None}],
-                    [{'name': 'lsb-release', 'version': None}]],
+                'build-depends': [[{'name': 'dpkg-dev', 'version': ('>=', '1.13.9'), 'arch': None}],
+                    [{'name': 'autoconf', 'version': ('>=', '2.13'), 'arch': None}],
+                    [{'name': 'bash', 'version': None, 'arch': None}],
+                    [{'name': 'bison', 'version': None, 'arch': None}],
+                    [{'name': 'flex', 'version': None, 'arch': None}],
+                    [{'name': 'gettext', 'version': None, 'arch': None}],
+                    [{'name': 'texinfo', 'version': None, 'arch': None}],
+                    [{'arch': [(True, 'hppa')], 'name': 'expect-tcl8.3', 'version': ('>=', '5.32.2')}],
+                    [{'name': 'dejagnu', 'version': ('>=', '1.4.2-1.1'), 'arch': None}],
+                    [{'name': 'dpatch', 'version': None, 'arch': None}],
+                    [{'name': 'file', 'version': None, 'arch': None}],
+                    [{'name': 'bzip2', 'version': None, 'arch': None}],
+                    [{'name': 'lsb-release', 'version': None, 'arch': None}]],
                 'build-depends-indep': []}
         self.assertEqual(rel2, pkg2.relations)
 
-- 
1.5.4.2





More information about the pkg-python-debian-commits mailing list