mvadkert / rpms / beakerlib

Forked from rpms/beakerlib 6 years ago
Clone
Blob Blame History Raw
From ead72529c223163a1a9f4b563a9a4e4947f03756 Mon Sep 17 00:00:00 2001
From: Petr Muller <muller@redhat.com>
Date: Wed, 10 Apr 2013 19:17:01 +0200
Subject: [PATCH 2/3] mi object does not have size in old pythons

check .count() of rpm.mi objects instead of relying on bool coercion

Older versions of RPM (including the version in RHEL5 and earlier) did
not implement bool coercion for rpm.mi objects, they are always true
even if they contain no matches. len() is also not implemented. So we
need to check .count() before we can assume there are any matches.

Bug: 1142535
---
 src/python/journalling.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/python/journalling.py b/src/python/journalling.py
index ed63e7f..5a4a807 100755
--- a/src/python/journalling.py
+++ b/src/python/journalling.py
@@ -296,7 +296,7 @@ class Journal(object):
       return None
 
     testInfo = ts.dbMatch("name", package)
-    if not testInfo:
+    if not testInfo.count():
       return None
 
     buildtime = time.gmtime(int(testInfo.next().format("%{BUILDTIME}")))
@@ -318,7 +318,7 @@ class Journal(object):
   def getRpmVersion(xmldoc, package, rpm_ts):
     rpms = []
     mi = rpm_ts.dbMatch("name", package)
-    if len(mi) == 0:
+    if mi.count() == 0:
       if package != 'unknown':
         pkgDetailsEl = xmldoc.createElement("pkgnotinstalled")
         pkgDetailsCon = xmldoc.createTextNode("%s" % package)
@@ -385,7 +385,7 @@ class Journal(object):
     ts = rpm.ts()
     mi = ts.dbMatch("name", "beakerlib")
     beakerlibRpmEl = newdoc.createElement("beakerlib_rpm")
-    if mi:
+    if mi.count():
       beakerlib_rpm = mi.next()
       beakerlibRpmCon = newdoc.createTextNode("%(name)s-%(version)s-%(release)s" % beakerlib_rpm)
     else:
@@ -393,7 +393,7 @@ class Journal(object):
 
     mi = ts.dbMatch("name", "beakerlib-redhat")
     beakerlibRedhatRpmEl = newdoc.createElement("beakerlib_redhat_rpm")
-    if mi:
+    if mi.count():
       beakerlib_redhat_rpm = mi.next()
       beakerlibRedhatRpmCon = newdoc.createTextNode("%(name)s-%(version)s-%(release)s" % beakerlib_redhat_rpm)
     else:
-- 
1.9.3