[yum-git] rpmUtils/miscutils.py test/depsolvetests.py test/operationstests.py test/packagetests.py test/simpleobsoletestests.py test/simpleupdatetests.py test/skipbroken-tests.py test/testbase.py yum/depsolve.py yum/packages.py yum/sqlitesack.py

Florian Festi ffesti at linux.duke.edu
Mon May 26 09:49:47 UTC 2008


 rpmUtils/miscutils.py        |   46 +++++++----------
 test/depsolvetests.py        |  114 +++++++++++++++++++++----------------------
 test/operationstests.py      |   10 +--
 test/packagetests.py         |   60 +++++++++++-----------
 test/simpleobsoletestests.py |    6 +-
 test/simpleupdatetests.py    |    8 +--
 test/skipbroken-tests.py     |   36 ++++++-------
 test/testbase.py             |   16 +++++-
 yum/depsolve.py              |   14 +----
 yum/packages.py              |    6 +-
 yum/sqlitesack.py            |   16 ++++--
 11 files changed, 171 insertions(+), 161 deletions(-)

New commits:
commit febe35eee130212380e5688bd119f19a032d74fc
Author: Florian Festi <ffesti at redhat.com>
Date:   Fri May 23 16:05:00 2008 +0200

    Make sure rpm.RPMSENSE_* int constants are used as flags in PRCOs.
    Added short hand constants to testbase
    Adjusted the test cases

diff --git a/rpmUtils/miscutils.py b/rpmUtils/miscutils.py
index 64e232e..606aea0 100644
--- a/rpmUtils/miscutils.py
+++ b/rpmUtils/miscutils.py
@@ -129,7 +129,7 @@ def rangeCheck(reqtuple, pkgtuple):
     # nameonly shouldn't ever raise it
     #(reqn, reqf, (reqe, reqv, reqr)) = reqtuple
     (n, a, e, v, r) = pkgtuple
-    return rangeCompare(reqtuple, (n, 'EQ', (e, v, r)))
+    return rangeCompare(reqtuple, (n, rpm.RPMSENSE_EQUAL, (e, v, r)))
 
 def rangeCompare(reqtuple, provtuple):
     """returns true if provtuple satisfies reqtuple"""
@@ -141,6 +141,9 @@ def rangeCompare(reqtuple, provtuple):
     if f is None or reqf is None:
         return 1
 
+    if isinstance(f, str) or isinstance(reqf, str):
+        raise ValueError, "%r %r" % (f, reqf)
+
     # and you thought we were done having fun
     # if the requested release is left out then we have
     # to remove release from the package prco to make sure the match
@@ -161,42 +164,33 @@ def rangeCompare(reqtuple, provtuple):
 
     # does not match unless
     if rc >= 1:
-        if reqf in ['GT', 'GE', 4, 12]:
+        if reqf & rpm.RPMSENSE_GREATER:
             return 1
-        if reqf in ['EQ', 8]:
-            if f in ['LE', 10]:
+        if reqf == rpm.RPMSENSE_EQUAL:
+            if f == (rpm.RPMSENSE_LESS|rpm.RPMSENSE_EQUAL):
                 return 1
     if rc == 0:
-        if reqf in ['GT', 4]:
-            if f in ['GT', 'GE', 4, 12]:
+        if reqf == rpm.RPMSENSE_GREATER:
+            if f & rpm.RPMSENSE_GREATER:
                 return 1
-        if reqf in ['GE', 12]:
-            if f in ['GT', 'GE', 'EQ', 'LE', 4, 12, 8, 10]:
+        if reqf == (rpm.RPMSENSE_GREATER|rpm.RPMSENSE_EQUAL):
+            if f != rpm.RPMSENSE_LESS:
                 return 1
-        if reqf in ['EQ', 8]:
-            if f in ['EQ', 'GE', 'LE', 8, 12, 10]:
+        if reqf == rpm.RPMSENSE_EQUAL:
+            if f & rpm.RPMSENSE_EQUAL:
                 return 1
-        if reqf in ['LE', 10]:
-            if f in ['EQ', 'LE', 'LT', 'GE', 8, 10, 2, 12]:
+        if reqf == (rpm.RPMSENSE_LESS|rpm.RPMSENSE_EQUAL):
+            if f != rpm.RPMSENSE_GREATER:
                 return 1
-        if reqf in ['LT', 2]:
-            if f in ['LE', 'LT', 10, 2]:
+        if reqf == rpm.RPMSENSE_LESS:
+            if f & rpm.RPMSENSE_LESS:
                 return 1
     if rc <= -1:
-        if reqf in ['GT', 'GE', 'EQ', 4, 12, 8]:
-            if f in ['GT', 'GE', 4, 12]:
+        if not (reqf & rpm.RPMSENSE_LESS):
+            if f & rpm.RPMSENSE_GREATER:
                 return 1
-        if reqf in ['LE', 'LT', 10, 2]:
+        if reqf & rpm.RPMSENSE_LESS:
             return 1
-#                if rc >= 1:
-#                    if reqf in ['GT', 'GE', 4, 12]:
-#                        return 1
-#                if rc == 0:
-#                    if reqf in ['GE', 'LE', 'EQ', 8, 10, 12]:
-#                        return 1
-#                if rc <= -1:
-#                    if reqf in ['LT', 'LE', 2, 10]:
-#                        return 1
 
     return 0
 
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 3f8c748..3e445ba 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -64,7 +64,7 @@ class DepsolveTests(DepsolveTests):
 
     def testInstallSinglePackageRequireVer1NotProvided(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', (None, '1.3', '2'))
+        po.addRequires('zip', EQ, (None, '1.3', '2'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.0', '2', None, 'i386')
@@ -74,7 +74,7 @@ class DepsolveTests(DepsolveTests):
 
     def testInstallSinglePackageRequireVer1Installed(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', (None, '1.3', '2'))
+        po.addRequires('zip', EQ, (None, '1.3', '2'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '2', None, 'i386')
@@ -85,7 +85,7 @@ class DepsolveTests(DepsolveTests):
 
     def testInstallSinglePackageRequireVer2NotProvided(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', (None, '1.3', '4'))
+        po.addRequires('zip', EQ, (None, '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '2', None, 'i386')
@@ -95,7 +95,7 @@ class DepsolveTests(DepsolveTests):
 
     def testInstallSinglePackageRequireVer2Installed(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', (None, '1.3', '4'))
+        po.addRequires('zip', EQ, (None, '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', None, 'i386')
@@ -106,7 +106,7 @@ class DepsolveTests(DepsolveTests):
 
     def testInstallSinglePackageRequireVer3NotProvided(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'GE', ('1', '1.3', '4'))
+        po.addRequires('zip', GE, ('1', '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', '0', 'i386')
@@ -116,7 +116,7 @@ class DepsolveTests(DepsolveTests):
 
     def testInstallSinglePackageRequireVer3Installed(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'GE', ('2', '1.3', '4'))
+        po.addRequires('zip', GE, ('2', '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
@@ -127,7 +127,7 @@ class DepsolveTests(DepsolveTests):
 
     def testInstallSinglePackageRequireVer4NotProvided(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+        po.addRequires('zip', LT, ('2', '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
@@ -137,7 +137,7 @@ class DepsolveTests(DepsolveTests):
 
     def testInstallSinglePackageRequireVer4_1Installed(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+        po.addRequires('zip', LT, ('2', '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.0', '4', '2', 'i386')
@@ -147,7 +147,7 @@ class DepsolveTests(DepsolveTests):
         self.assertResult((po, ipo))
     def testInstallSinglePackageRequireVer4_2Installed(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+        po.addRequires('zip', LT, ('2', '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '3', '2', 'i386')
@@ -157,7 +157,7 @@ class DepsolveTests(DepsolveTests):
         self.assertResult((po, ipo))
     def testInstallSinglePackageRequireVer4_3Installed(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+        po.addRequires('zip', LT, ('2', '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', None, 'i386')
@@ -167,7 +167,7 @@ class DepsolveTests(DepsolveTests):
         self.assertResult((po, ipo))
     def testInstallSinglePackageRequireVer4_4Installed(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+        po.addRequires('zip', LT, ('2', '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', '1', 'i386')
@@ -177,7 +177,7 @@ class DepsolveTests(DepsolveTests):
         self.assertResult((po, ipo))
     def testInstallSinglePackageRequireVer4_5Installed(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+        po.addRequires('zip', LT, ('2', '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '0.3', '4', '2', 'i386')
@@ -188,8 +188,8 @@ class DepsolveTests(DepsolveTests):
 
     def testInstallSinglePackageRequireXtraBadVer(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', ('2', '1.3', '4'))
-        po.addRequires('zap', 'EQ', ('2', '1.3', '4'))
+        po.addRequires('zip', EQ, ('2', '1.3', '4'))
+        po.addRequires('zap', EQ, ('2', '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
@@ -202,8 +202,8 @@ class DepsolveTests(DepsolveTests):
 
     def testInstallSinglePackageRequireXtra(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', ('2', '1.3', '4'))
-        po.addRequires('zap', 'EQ', ('4', '2.6', '8'))
+        po.addRequires('zip', EQ, ('2', '1.3', '4'))
+        po.addRequires('zap', EQ, ('4', '2.6', '8'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
@@ -217,11 +217,11 @@ class DepsolveTests(DepsolveTests):
         
     def testInstallSinglePackageRequireInstalledRequireXtra(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', ('2', '1.3', '4'))
+        po.addRequires('zip', EQ, ('2', '1.3', '4'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
-        ipo.addRequires('zap', 'EQ', ('4', '2.6', '8'))
+        ipo.addRequires('zap', EQ, ('4', '2.6', '8'))
         self.rpmdb.addPackage(ipo)
         
         xpo = FakePackage('zap', '2.6', '8', '4', 'i386')
@@ -232,33 +232,33 @@ class DepsolveTests(DepsolveTests):
         
     def testInstallSinglePackageRequireUpgradeRequireXtraErr(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', ('4', '2.6', '8'))
+        po.addRequires('zip', EQ, ('4', '2.6', '8'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
-        ipo.addRequires('zap', 'EQ', ('2', '1.3', '3'))
+        ipo.addRequires('zap', EQ, ('2', '1.3', '3'))
         self.rpmdb.addPackage(ipo)
         
         xpo = FakePackage('zip', '2.6', '8', '4', 'i386')
-        xpo.addRequires('zap', 'EQ', ('2', '1.3', '4'))
+        xpo.addRequires('zap', EQ, ('2', '1.3', '4'))
         self.xsack.addPackage(xpo)
         xpo = FakePackage('zap', '1.3', '4', '2', 'i386')
-        xpo.addRequires('zsh', 'EQ', ('2', '4', '8'))
+        xpo.addRequires('zsh', EQ, ('2', '4', '8'))
         self.xsack.addPackage(xpo)
 
         self.assertEquals('err', *self.resolveCode())
 
     def testInstallSinglePackageRequireUpgradeRequireXtraOk(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', ('4', '2.6', '8'))
+        po.addRequires('zip', EQ, ('4', '2.6', '8'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
-        ipo.addRequires('zap', 'EQ', ('2', '1.3', '3'))
+        ipo.addRequires('zap', EQ, ('2', '1.3', '3'))
         self.rpmdb.addPackage(ipo)
         
         xpo = FakePackage('zip', '2.6', '8', '4', 'i386')
-        xpo.addRequires('zap', 'EQ', ('2', '1.3', '4'))
+        xpo.addRequires('zap', EQ, ('2', '1.3', '4'))
         self.xsack.addPackage(xpo)
         xpo2 = FakePackage('zap', '1.3', '4', '2', 'i386')
         self.xsack.addPackage(xpo2)
@@ -268,11 +268,11 @@ class DepsolveTests(DepsolveTests):
         
     def testInstallSinglePackageRequireMultiXtra(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', ('4', '2.6', '8'))
+        po.addRequires('zip', EQ, ('4', '2.6', '8'))
         self.tsInfo.addInstall(po)
 
         xpo = FakePackage('zip', '2.6', '8', '4', 'i386')
-        xpo.addRequires('zap', 'EQ', ('2', '1.3', '4'))
+        xpo.addRequires('zap', EQ, ('2', '1.3', '4'))
         self.xsack.addPackage(xpo)
         
         xpo2 = FakePackage('zap', '1.3', '4', '2', 'i386')
@@ -346,7 +346,7 @@ class DepsolveTests(DepsolveTests):
 
     def testUpdateForDependency(self):
         po = FakePackage('zsh', '1', '1', '0', 'i386')
-        po.addRequires('zip', 'EQ', ('0', '2', '1'))
+        po.addRequires('zip', EQ, ('0', '2', '1'))
         self.tsInfo.addInstall(po)
 
         installedpo = FakePackage('zip', '1', '1', '0', 'i386')
@@ -360,18 +360,18 @@ class DepsolveTests(DepsolveTests):
 
     def testUpdateSplitPackage(self):
         po = FakePackage('zsh', '1', '1', '0', 'i386')
-        po.addRequires('libzip', 'EQ', ('0', '2', '1'))
+        po.addRequires('libzip', EQ, ('0', '2', '1'))
         self.tsInfo.addInstall(po)
 
         installedpo = FakePackage('zip', '1', '1', '0', 'i386')
-        installedpo.addProvides('libzip', 'EQ', ('0', '1', '1'))
+        installedpo.addProvides('libzip', EQ, ('0', '1', '1'))
         self.rpmdb.addPackage(installedpo)
 
         updatepo = FakePackage('zip', '2', '1', '0', 'i386')
-        updatepo.addRequires('zip-libs', 'EQ', ('0', '2', '1'))
+        updatepo.addRequires('zip-libs', EQ, ('0', '2', '1'))
         self.xsack.addPackage(updatepo)
         updatepo2 = FakePackage('zip-libs', '2', '1', '0', 'i386')
-        updatepo2.addProvides('libzip', 'EQ', ('0', '2', '1'))
+        updatepo2.addProvides('libzip', EQ, ('0', '2', '1'))
         self.xsack.addPackage(updatepo2)
 
         self.assertEquals('ok', *self.resolveCode())
@@ -442,7 +442,7 @@ class DepsolveTests(DepsolveTests):
 
     def testUpdateForConflict(self):
         po = FakePackage('zsh', '1', '1', '0', 'i386')
-        po.addConflicts('zip', 'LE', ('0', '1', '1'))
+        po.addConflicts('zip', LE, ('0', '1', '1'))
         self.tsInfo.addInstall(po)
 
         installedpo = FakePackage('zip', '1', '1', '0', 'i386')
@@ -459,7 +459,7 @@ class DepsolveTests(DepsolveTests):
         self.tsInfo.addInstall(po)
 
         installedpo = FakePackage('zip', '1', '1', '0', 'i386')
-        installedpo.addConflicts('zsh', 'LE', ('0', '1', '1'))
+        installedpo.addConflicts('zsh', LE, ('0', '1', '1'))
         self.rpmdb.addPackage(installedpo)
 
         updatepo = FakePackage('zip', '2', '1', '0', 'i386')
@@ -470,11 +470,11 @@ class DepsolveTests(DepsolveTests):
 
     def testUpdateForConflictProvide(self):
         po = FakePackage('zsh', '1', '1', '0', 'i386')
-        po.addConflicts('zippy', 'LE', ('0', '1', '1'))
+        po.addConflicts('zippy', LE, ('0', '1', '1'))
         self.tsInfo.addInstall(po)
 
         installedpo = FakePackage('zip', '1', '1', '0', 'i386')
-        installedpo.addProvides('zippy', 'EQ', ('0', '1', '1'))
+        installedpo.addProvides('zippy', EQ, ('0', '1', '1'))
         self.rpmdb.addPackage(installedpo)
 
         updatepo = FakePackage('zip', '2', '1', '0', 'i386')
@@ -485,17 +485,17 @@ class DepsolveTests(DepsolveTests):
 
     def testUpdateForConflictProvide2(self):
         po = FakePackage('zsh', '1', '1', '0', 'i386')
-        po.addProvides('zippy', 'EQ', ('0', '2', '1'))
+        po.addProvides('zippy', EQ, ('0', '2', '1'))
         self.tsInfo.addInstall(po)
 
         installedpo = FakePackage('zip', '1', '1', '0', 'i386')
-        installedpo.addConflicts('zippy', 'GT', ('0', '1', '1'))
-        installedpo.addConflicts('zippy', 'LT', ('0', '1', '1'))
+        installedpo.addConflicts('zippy', GT, ('0', '1', '1'))
+        installedpo.addConflicts('zippy', LT, ('0', '1', '1'))
         self.rpmdb.addPackage(installedpo)
 
         updatepo = FakePackage('zip', '2', '1', '0', 'i386')
-        updatepo.addConflicts('zippy', 'GT', ('0', '2', '1'))
-        updatepo.addConflicts('zippy', 'LT', ('0', '2', '1'))
+        updatepo.addConflicts('zippy', GT, ('0', '2', '1'))
+        updatepo.addConflicts('zippy', LT, ('0', '2', '1'))
         self.xsack.addPackage(updatepo)
 
         self.assertEquals('ok', *self.resolveCode())
@@ -785,13 +785,13 @@ class DepsolveTests(DepsolveTests):
 
     def testMultiPkgVersions1(self):
         ipo1 = FakePackage('abcd', arch='noarch')
-        ipo1.addRequires('Foo', 'EQ', ('0', '1', '1'))
+        ipo1.addRequires('Foo', EQ, ('0', '1', '1'))
         self.rpmdb.addPackage(ipo1)
         ipo2 = FakePackage('Foo', arch='noarch')
         self.rpmdb.addPackage(ipo2)
         
         xpo = FakePackage('abcd', version='2', arch='noarch')
-        xpo.addRequires('Foo', 'GE', ('0', '2', '1'))
+        xpo.addRequires('Foo', GE, ('0', '2', '1'))
         self.tsInfo.addUpdate(xpo, oldpo=ipo1)
 
         po1 = FakePackage('Foo', arch='noarch')
@@ -806,13 +806,13 @@ class DepsolveTests(DepsolveTests):
 
     def testMultiPkgVersions2(self):
         ipo1 = FakePackage('abcd', arch='i586')
-        ipo1.addRequires('Foo', 'EQ', ('0', '1', '1'))
+        ipo1.addRequires('Foo', EQ, ('0', '1', '1'))
         self.rpmdb.addPackage(ipo1)
         ipo2 = FakePackage('Foo', arch='i586')
         self.rpmdb.addPackage(ipo2)
         
         xpo = FakePackage('abcd', version='2', arch='i586')
-        xpo.addRequires('Foo', 'GE', ('0', '2', '1'))
+        xpo.addRequires('Foo', GE, ('0', '2', '1'))
         self.tsInfo.addUpdate(xpo, oldpo=ipo1)
 
         po1 = FakePackage('Foo', arch='i586')
@@ -827,13 +827,13 @@ class DepsolveTests(DepsolveTests):
 
     def testMultiPkgVersions3(self):
         ipo1 = FakePackage('abcd', arch='i586')
-        ipo1.addRequires('Foo', 'EQ', ('0', '1', '1'))
+        ipo1.addRequires('Foo', EQ, ('0', '1', '1'))
         self.rpmdb.addPackage(ipo1)
         ipo2 = FakePackage('Foo', arch='i586')
         self.rpmdb.addPackage(ipo2)
         
         xpo = FakePackage('abcd', version='2', arch='i586')
-        xpo.addRequires('Foo', 'GE', ('0', '2', '1'))
+        xpo.addRequires('Foo', GE, ('0', '2', '1'))
         self.tsInfo.addUpdate(xpo, oldpo=ipo1)
 
         po1 = FakePackage('Foo', arch='i586')
@@ -851,13 +851,13 @@ class DepsolveTests(DepsolveTests):
 
     def testMultiPkgVersions4(self):
         ipo1 = FakePackage('abcd', arch='i386')
-        ipo1.addRequires('Foo', 'EQ', ('0', '1', '1'))
+        ipo1.addRequires('Foo', EQ, ('0', '1', '1'))
         self.rpmdb.addPackage(ipo1)
         ipo2 = FakePackage('Foo', arch='i386')
         self.rpmdb.addPackage(ipo2)
         
         xpo = FakePackage('abcd', version='2', arch='i386')
-        xpo.addRequires('Foo', 'GE', ('0', '2', '1'))
+        xpo.addRequires('Foo', GE, ('0', '2', '1'))
         self.tsInfo.addUpdate(xpo, oldpo=ipo1)
 
         po1 = FakePackage('Foo', arch='i386')
@@ -880,12 +880,12 @@ class DepsolveTests(DepsolveTests):
         self.tsInfo.addInstall(xpo)
 
         po1 = FakePackage('unison213', version='2.13.16', release='9')
-        po1.addProvides('unison', 'EQ', ('0', '2.13.16', '9'))
-        po1.addObsoletes('unison', 'LT', ('0', '2.27.57', '3'))
+        po1.addProvides('unison', EQ, ('0', '2.13.16', '9'))
+        po1.addObsoletes('unison', LT, ('0', '2.27.57', '3'))
         self.xsack.addPackage(po1)
         po2 = FakePackage('unison227', version='2.27.57', release='7')
-        po2.addProvides('unison', 'EQ', ('0', '2.27.57', '7'))
-        po2.addObsoletes('unison', 'LT', ('0', '2.27.57', '3'))
+        po2.addProvides('unison', EQ, ('0', '2.27.57', '7'))
+        po2.addObsoletes('unison', LT, ('0', '2.27.57', '3'))
         self.xsack.addPackage(po2)
 
         self.assertEquals('ok', *self.resolveCode())
@@ -897,11 +897,11 @@ class DepsolveTests(DepsolveTests):
         self.tsInfo.addInstall(xpo)
 
         po1 = FakePackage('unison213', version='2.13.16', release='9')
-        po1.addProvides('unison', 'EQ', ('0', '2.13.16', '9'))
-        po1.addObsoletes('unison', 'LT', ('0', '2.27.57', '3'))
+        po1.addProvides('unison', EQ, ('0', '2.13.16', '9'))
+        po1.addObsoletes('unison', LT, ('0', '2.27.57', '3'))
         po2 = FakePackage('unison227', version='2.27.57', release='7')
-        po2.addProvides('unison', 'EQ', ('0', '2.27.57', '7'))
-        po2.addObsoletes('unison', 'LT', ('0', '2.27.57', '3'))
+        po2.addProvides('unison', EQ, ('0', '2.27.57', '7'))
+        po2.addObsoletes('unison', LT, ('0', '2.27.57', '3'))
         self.xsack.addPackage(po2)
         self.xsack.addPackage(po1)
 
diff --git a/test/operationstests.py b/test/operationstests.py
index 12a1627..71d311f 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -9,7 +9,7 @@ class ComplicatedTests(OperationsTests):
         simpleobsoletestests.SimpleObsoletesTests.buildPkgs(pkgs)
         # conflicts
         pkgs.conflicts = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
-        pkgs.conflicts.addConflicts('zsh', 'EQ', ('0', '1', '1'))
+        pkgs.conflicts.addConflicts('zsh', EQ, ('0', '1', '1'))
 
     def testObsoleteForConflict(self):
         p = self.pkgs
@@ -31,11 +31,11 @@ class CombinedUpdateObsoletesTest(OperationsTests):
         pkgs.kdevel_2 = FakePackage('k-devel', '3.5', '2')
         pkgs.kdevel_2.addRequires('k')
         pkgs.klibs_2_i386 = FakePackage('klibs', '3.5', '2', arch='i386')
-        pkgs.klibs_2_i386.addObsoletes('klibs', 'LT', (None, '3.5', '2'))
-        pkgs.klibs_2_i386.addObsoletes('k', 'LT', (None, '3.5', '2'))
+        pkgs.klibs_2_i386.addObsoletes('klibs', LT, (None, '3.5', '2'))
+        pkgs.klibs_2_i386.addObsoletes('k', LT, (None, '3.5', '2'))
         pkgs.klibs_2_x86_64 = FakePackage('klibs', '3.5', '2', arch='x86_64')
-        pkgs.klibs_2_x86_64.addObsoletes('klibs', 'LT', (None, '3.5', '2'))
-        pkgs.klibs_2_x86_64.addObsoletes('k', 'LT', (None, '3.5', '2'))
+        pkgs.klibs_2_x86_64.addObsoletes('klibs', LT, (None, '3.5', '2'))
+        pkgs.klibs_2_x86_64.addObsoletes('k', LT, (None, '3.5', '2'))
 
     def testSelfObsolete(self):
         p = self.pkgs
diff --git a/test/packagetests.py b/test/packagetests.py
index 628247d..44946de 100644
--- a/test/packagetests.py
+++ b/test/packagetests.py
@@ -3,89 +3,90 @@ import settestpath
 
 from yum import packages
 from rpmUtils import miscutils
+from testbase import * 
 
 class InPrcoRangePackageTests(unittest.TestCase):
 
     def setUp(self):
         self.po = packages.RpmBase()
         self.po.rel = 10
-        self.po.prco['provides'].append(("seth", "EQ", (1, 2, 3)))
-        self.po.prco['requires'].append(("foo", "GE", (4, 5, None)))
+        self.po.prco['provides'].append(("seth", EQ, (1, 2, 3)))
+        self.po.prco['requires'].append(("foo", GE, (4, 5, None)))
 
     def testRequiresEqPass(self):
-        dep = ("foo", "EQ", (4, 5, 0))
+        dep = ("foo", EQ, (4, 5, 0))
         self.assertTrue(self.po.inPrcoRange('requires', dep))
 
     def testRequiresEqFailGt(self):
-        dep = ("foo", "EQ", (4, 4, 0))
+        dep = ("foo", EQ, (4, 4, 0))
         self.assertFalse(self.po.inPrcoRange('requires', dep))
 
     def testProvidesGePass(self):
-        dep = ("seth", "GE", (1, 0, 0))
+        dep = ("seth", GE, (1, 0, 0))
         self.assertTrue(self.po.inPrcoRange('provides', dep)) 
 
     def testProvidesGePassWithEqual(self):
-        dep = ("seth", "GE", (1, 2, 3))
+        dep = ("seth", GE, (1, 2, 3))
         self.assertTrue(self.po.inPrcoRange('provides', dep)) 
 
     def testProvidesGeFailOnEpoch(self):
-        dep = ("seth", "GE", (2, 0, 0))
+        dep = ("seth", GE, (2, 0, 0))
         self.assertFalse(self.po.inPrcoRange('provides', dep)) 
 
     def testProvidesGeFailOnVersion(self):
-        dep = ("seth", "GE", (1, 3, 0))
+        dep = ("seth", GE, (1, 3, 0))
         self.assertFalse(self.po.inPrcoRange('provides', dep))
 
     def testProvidesGeFailOnRelease(self):
-        dep = ("seth", "GE", (1, 2, 4))
+        dep = ("seth", GE, (1, 2, 4))
         self.assertFalse(self.po.inPrcoRange('provides', dep))
 
     def testProvidesGtPass(self):
-        dep = ("seth", "GT", (1, 0, 0))
+        dep = ("seth", GT, (1, 0, 0))
         self.assertTrue(self.po.inPrcoRange('provides', dep))
 
     def testProvidesGtFail(self):
-        dep = ("seth", "GT", (1, 2, 4))
+        dep = ("seth", GT, (1, 2, 4))
         self.assertFalse(self.po.inPrcoRange('provides', dep))
 
     def testProvidesGtFailOnEqual(self):
-        dep = ("seth", "GT", (1, 2, 3))
+        dep = ("seth", GT, (1, 2, 3))
         self.assertFalse(self.po.inPrcoRange('provides', dep))
 
     def testProvidesEqPass(self):
-        dep = ("seth", "EQ", (1, 2, 3))
+        dep = ("seth", EQ, (1, 2, 3))
         self.assertTrue(self.po.inPrcoRange('provides', dep))
 
     def testProvidesEqFailGt(self):
-        dep = ("seth", "EQ", (1, 2, 0))
+        dep = ("seth", EQ, (1, 2, 0))
         self.assertFalse(self.po.inPrcoRange('provides', dep))
 
     def testProvidesEqFailLt(self):
-        dep = ("seth", "EQ", (1, 2, 4))
+        dep = ("seth", EQ, (1, 2, 4))
         self.assertFalse(self.po.inPrcoRange('provides', dep))
 
     def testProvidesLePassEq(self):
-        dep = ("seth", "LE", (1, 2, 3))
+        dep = ("seth", LE, (1, 2, 3))
         self.assertTrue(self.po.inPrcoRange('provides', dep))
 
     def testProvidesLePassGt(self):
-        dep = ("seth", "LE", (1, 5, 2))
+        dep = ("seth", LE, (1, 5, 2))
         self.assertTrue(self.po.inPrcoRange('provides', dep))
 
     def testProvidesLeFail(self):
-        dep = ("seth", "LE", (0, 2, 2))
+        dep = ("seth", LE, (0, 2, 2))
         self.assertFalse(self.po.inPrcoRange('provides', dep))
 
     def testProvidesLtPass(self):
-        dep = ("seth", "LT", (1, 2, 6))
+        dep = ("seth", LT, (1, 2, 6))
         self.assertTrue(self.po.inPrcoRange('provides', dep))
 
     def testProvidesLtFailEq(self):
-        dep = ("seth", "LT", (1, 2, 3))
+        dep = ("seth", LT, (1, 2, 3))
         self.assertFalse(self.po.inPrcoRange('provides', dep))
 
     def testProvidesLtFailGt(self):
-        dep = ("seth", "LT", (1, 0, 2))
+        dep = ("seth", LT, (1, 0, 2))
         self.assertFalse(self.po.inPrcoRange('provides', dep))
 
 
@@ -188,12 +189,13 @@ class RangeCompareTests(unittest.TestCase):
 
     def testRangeCompare(self):
         for requires, provides, result in (
-            (('foo', 'EQ', ('0', '1.4.4', '0')),   ('foo', 'EQ', ('0', '1.4.4', '0')),  1),
-            (('foo', 'EQ', ('0', '1.4.4', '0')),   ('foo', 'EQ', ('0', '1.4.4', None)), 1),
-            (('foo', 'EQ', ('0', '1.4.4', None)),  ('foo', 'EQ', ('0', '1.4.4', '8')),  1),
-            (('foo', 'LT', ('0', '1.5.4', None)),  ('foo', 'EQ', ('0', '1.4.4', '7')),  1),
-            (('foo', 'GE', ('0', '1.4.4', '7.1')), ('foo', 'EQ', ('0', '1.4.4', '7')),  0),
-            (('foo', 'EQ', ('0', '1.4', None)),    ('foo', 'EQ', ('0', '1.4.4', '7')),  0),
-            (('foo', 'GT', ('1', '1.4.4', None)),  ('foo', 'EQ', ('3', '1.2.4', '7')),  1),
+            (('foo', EQ, ('0', '1.4.4', '0')),   ('foo', EQ, ('0', '1.4.4', '0')),  1),
+            (('foo', EQ, ('0', '1.4.4', '0')),   ('foo', EQ, ('0', '1.4.4', None)), 1),
+            (('foo', EQ, ('0', '1.4.4', None)),  ('foo', EQ, ('0', '1.4.4', '8')),  1),
+            (('foo', LT, ('0', '1.5.4', None)),  ('foo', EQ, ('0', '1.4.4', '7')),  1),
+            (('foo', GE, ('0', '1.4.4', '7.1')), ('foo', EQ, ('0', '1.4.4', '7')),  0),
+            (('foo', EQ, ('0', '1.4', None)),    ('foo', EQ, ('0', '1.4.4', '7')),  0),
+            (('foo', GT, ('1', '1.4.4', None)),  ('foo', EQ, ('3', '1.2.4', '7')),  1),
             ):
-            self.assertEquals(miscutils.rangeCompare(requires, provides), result)
+            self.assertEquals(miscutils.rangeCompare(requires, provides), result,
+                              "%r %r: %r" % (requires, provides, result))
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
index 05ebf05..f10f6e4 100644
--- a/test/simpleobsoletestests.py
+++ b/test/simpleobsoletestests.py
@@ -226,11 +226,11 @@ class GitMetapackageObsoletesTests(OperationsTests):
         pkgs.metapackage = FakePackage('git', '1.5.4.2', '1', '0', 'x86_64')
         # obsoletes
         pkgs.new_git = FakePackage('git', '1.5.4.4', '1', '0', 'x86_64')
-        pkgs.new_git.addObsoletes('git-core', 'LE', ('0', '1.5.4.3', '1'))
-        pkgs.new_git.addProvides('git-core', 'EQ', ('0', '1.5.4', '1'))
+        pkgs.new_git.addObsoletes('git-core', LE, ('0', '1.5.4.3', '1'))
+        pkgs.new_git.addProvides('git-core', EQ, ('0', '1.5.4', '1'))
 
         pkgs.git_all = FakePackage('git-all', '1.5.4', '1', '0', 'x86_64')
-        pkgs.git_all.addObsoletes('git', 'LE', ('0', '1.5.4.3', '1'))
+        pkgs.git_all.addObsoletes('git', LE, ('0', '1.5.4.3', '1'))
 
 
     def testGitMetapackageOnlyCoreInstalled(self):
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index fe4f414..180c880 100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@ -18,18 +18,18 @@ class SimpleUpdateTests(OperationsTests):
     def buildPkgs(pkgs, *args):
         # installed
         pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
-        pkgs.installed_i386.addRequires('bar', 'EQ', ('0', '1', '1'))
+        pkgs.installed_i386.addRequires('bar', EQ, ('0', '1', '1'))
         pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
-        pkgs.installed_x86_64.addRequires('bar', 'EQ', ('0', '1', '1'))
+        pkgs.installed_x86_64.addRequires('bar', EQ, ('0', '1', '1'))
         pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
-        pkgs.installed_noarch.addRequires('bar', 'EQ', ('0', '1', '1'))
+        pkgs.installed_noarch.addRequires('bar', EQ, ('0', '1', '1'))
         # updates
         pkgs.update_i386 = FakePackage('zsh', '2', '1', '0', 'i386')
         pkgs.update_x86_64 = FakePackage('zsh', '2', '1', '0', 'x86_64')
         pkgs.update_noarch = FakePackage('zsh', '2', '1', '0', 'noarch')
         # requires update (UpdateForDependency tests)
         pkgs.requires_update = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
-        pkgs.requires_update.addRequires('zsh', 'EQ', ('0', '2', '1'))
+        pkgs.requires_update.addRequires('zsh', EQ, ('0', '2', '1'))
         # removed requirement due to update (UpdateForDependency2 tests)
         pkgs.required = FakePackage('bar', '1', '1', '0')
         pkgs.required_updated = FakePackage('bar', version='2')
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index e15ae56..2b9aabd 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -76,7 +76,7 @@ class SkipBrokenTests(DepsolveTests):
         po2 = self.repoPackage('foo', '2')
 
         ipo = self.instPackage('foo-tools', '2.5')
-        ipo.addRequires('foo', 'EQ', ('0', '1', '0'))
+        ipo.addRequires('foo', EQ, ('0', '1', '0'))
 
         self.tsInfo.addUpdate(po2, oldpo=po1)
         
@@ -89,9 +89,9 @@ class SkipBrokenTests(DepsolveTests):
         is not provided, the update should be skipped and result in a empty transaction
         '''
         po1 = self.instPackage('foo', '1')
-        po1.addRequires('foo-tools', 'EQ', ('0', '1', '0'))
+        po1.addRequires('foo-tools', EQ, ('0', '1', '0'))
         po2 = self.repoPackage('foo', '2')
-        po2.addRequires('foo-tools', 'EQ', ('0', '2', '0'))
+        po2.addRequires('foo-tools', EQ, ('0', '2', '0'))
 
         ipo = self.instPackage('foo-tools', '1')
 
@@ -108,13 +108,13 @@ class SkipBrokenTests(DepsolveTests):
         there is not longer provided.
         '''
         po1 = self.instPackage('foo', '1')
-        po1.addRequires('foo-tools', 'EQ', ('0', '1', '0'))
+        po1.addRequires('foo-tools', EQ, ('0', '1', '0'))
         po2 = self.repoPackage('foo', '2')
-        po2.addRequires('foo-tools', 'EQ', ('0', '2', '0'))
+        po2.addRequires('foo-tools', EQ, ('0', '2', '0'))
 
         ipo = self.instPackage('foo-tools', '1')
         por =  self.repoPackage('foo-gui', '1')
-        por.addRequires('foo', 'EQ', ('0', '2', '0'))
+        por.addRequires('foo', EQ, ('0', '2', '0'))
 
         self.tsInfo.addUpdate(po2, oldpo=po1)
         self.tsInfo.addInstall(por)
@@ -129,7 +129,7 @@ class SkipBrokenTests(DepsolveTests):
         '''
         ipo = self.instPackage('foo', '1')
         ipo2 = self.instPackage('foo-tools', '1')
-        ipo2.addRequires('foo', 'EQ', ('0', '1', '0'))
+        ipo2.addRequires('foo', EQ, ('0', '1', '0'))
 
         self.tsInfo.addErase(ipo)
         self.assertEquals('ok', *self.resolveCode(skip=True))
@@ -141,10 +141,10 @@ class SkipBrokenTests(DepsolveTests):
         '''
         ipo = self.instPackage('foo', '1')
         ipo2 = self.instPackage('foo-tools', '1')
-        ipo2.addRequires('foo', 'EQ', ('0', '1', '0'))
+        ipo2.addRequires('foo', EQ, ('0', '1', '0'))
 
         upo2 = self.repoPackage('foo-tools', '2')
-        upo2.addRequires('foo', 'EQ', ('0', '1', '0'))
+        upo2.addRequires('foo', EQ, ('0', '1', '0'))
 
         self.tsInfo.addErase(ipo)
         self.tsInfo.addUpdate(upo2, oldpo=ipo2)
@@ -158,10 +158,10 @@ class SkipBrokenTests(DepsolveTests):
         '''
         ipo = self.instPackage('foo', '1')
         ipo2 = self.instPackage('foo-tools', '1')
-        ipo2.addRequires('foo', 'EQ', ('0', '1', '0'))
+        ipo2.addRequires('foo', EQ, ('0', '1', '0'))
 
         upo2 = self.repoPackage('foo-tools', '2')
-        upo2.addRequires('foo', 'EQ', ('0', '1', '0'))
+        upo2.addRequires('foo', EQ, ('0', '1', '0'))
 
         self.tsInfo.addUpdate(upo2, oldpo=ipo2)
         self.tsInfo.addErase(ipo)
@@ -176,7 +176,7 @@ class SkipBrokenTests(DepsolveTests):
         '''
         po1 = self.instPackage('foo', '1')
         po2 = self.repoPackage('foo', '2')
-        po2.addConflicts('bar', 'EQ', ('0', '1', '0'))
+        po2.addConflicts('bar', EQ, ('0', '1', '0'))
 
         ipo = self.instPackage('bar', '1')
 
@@ -193,13 +193,13 @@ class SkipBrokenTests(DepsolveTests):
         '''
         po1 = self.instPackage('foo', '1')
         po2 = self.repoPackage('foo', '2')
-        po2.addConflicts('bar', 'EQ', ('0', '1', '0'))
+        po2.addConflicts('bar', EQ, ('0', '1', '0'))
 
         ipo = self.instPackage('bar', '1')
 
 
         xpo = self.repoPackage('bar', '2')
-        xpo.addRequires('foo', 'EQ', ('0', '1', '0'))
+        xpo.addRequires('foo', EQ, ('0', '1', '0'))
 
         self.tsInfo.addUpdate(po2, oldpo=po1)
         
@@ -215,13 +215,13 @@ class SkipBrokenTests(DepsolveTests):
         '''
         po1 = self.instPackage('foo', '1')
         po2 = self.repoPackage('foo', '2')
-        po2.addConflicts('bar', 'EQ', ('0', '1', '0'))
+        po2.addConflicts('bar', EQ, ('0', '1', '0'))
 
         ipo = self.instPackage('bar', '1')
 
 
         xpo = self.repoPackage('bar', '2')
-        xpo.addRequires('poo', 'EQ', ('0', '1', '0'))
+        xpo.addRequires('poo', EQ, ('0', '1', '0'))
 
         self.tsInfo.addUpdate(po2, oldpo=po1)
         
@@ -286,7 +286,7 @@ class SkipBrokenTests(DepsolveTests):
         self.tsInfo.addInstall(po1)
 
         po2 = self.repoPackage('bar')
-        po2.addRequires('baz', 'EQ', (None, '2', '1'))
+        po2.addRequires('baz', EQ, (None, '2', '1'))
 
         ipo = self.instPackage('baz')
         upo = self.repoPackage('baz', '2', '1')
@@ -353,7 +353,7 @@ class SkipBrokenTests(DepsolveTests):
         ipo2 = self.instPackage('foo', '1',arch='x86_64')
         po1 = self.repoPackage('foo', '2',arch='i386')
         po2 = self.repoPackage('foo', '2',arch='x86_64')
-        po2.addRequires('notfound', 'EQ', ('0', '1', '0'))
+        po2.addRequires('notfound', EQ, ('0', '1', '0'))
         self.tsInfo.addUpdate(po1, oldpo=ipo1)
         self.tsInfo.addUpdate(po2, oldpo=ipo2)
         self.assertEquals('empty', *self.resolveCode(skip=True))
diff --git a/test/testbase.py b/test/testbase.py
index 372fec3..b939c12 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -16,6 +16,18 @@ import inspect
 from rpmUtils import arch
 
 #############################################################
+### RPM Flag constants ######################################
+############################################################# 
+import rpm
+
+GT = rpm.RPMSENSE_GREATER
+GE = rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER
+LT = rpm.RPMSENSE_LESS
+LE = rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL
+EQ = rpm.RPMSENSE_EQUAL
+
+
+#############################################################
 ### Helper classes ##########################################
 #############################################################
 
@@ -60,7 +72,7 @@ class FakePackage(packages.YumAvailablePackage):
         self.arch = arch
         self.pkgtup = (self.name, self.arch, self.epoch, self.version, self.release)
 
-        self.prco['provides'].append((name, 'EQ', (epoch, version, release)))
+        self.prco['provides'].append((name, EQ, (epoch, version, release)))
 
         # Just a unique integer
         self.id = self.__hash__()
@@ -157,7 +169,7 @@ class DepsolveTests(_DepsolveTestsBase):
 
     def testInstallPackageRequireInstalled(self):
         po = FakePackage('zsh', '1', '1', None, 'i386')
-        po.addRequires('zip', 'EQ', (None, '1.3', '2'))
+        po.addRequires('zip', EQ, (None, '1.3', '2'))
         self.tsInfo.addInstall(po)
 
         ipo = FakePackage('zip', '1.3', '2', None, 'i386')
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 5bc3c7f..190f33b 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -53,12 +53,6 @@ except:
             for y in args:
                 if x < y: x = y
             return x
-flags = {"GT": rpm.RPMSENSE_GREATER,
-         "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
-         "LT": rpm.RPMSENSE_LESS,
-         "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
-         "EQ": rpm.RPMSENSE_EQUAL,
-         None: 0 }
 
 class Depsolve(object):
 
@@ -736,7 +730,7 @@ class Depsolve(object):
             self.verbose_logger.log(logginglevels.DEBUG_2, _("looking for %s as a requirement of %s"), req, txmbr)
             provs = self.tsInfo.getProvides(*req)
             if not provs:
-                ret.append( (txmbr.po, (req[0], flags[req[1]], version_tuple_to_string(req[2]))) )
+                ret.append( (txmbr.po, (req[0], req[1], version_tuple_to_string(req[2]))) )
                 continue
 
             #Add relationship
@@ -771,7 +765,7 @@ class Depsolve(object):
             for pkg, hits in self.tsInfo.getRequires(*prov).iteritems():
                 for rn, rf, rv in hits:
                     if not self.tsInfo.getProvides(rn, rf, rv):
-                        ret.append( (pkg, (rn, flags[rf], version_tuple_to_string(rv))) )
+                        ret.append( (pkg, (rn, rf, version_tuple_to_string(rv))) )
         return ret
 
     def _checkFileRequires(self):
@@ -839,7 +833,7 @@ class Depsolve(object):
                 for conflicting_po in self.tsInfo.getNewProvides(r, f, v):
                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
                         continue
-                    ret.append( (po, (r, flags[f], version_tuple_to_string(v)), conflicting_po) )
+                    ret.append( (po, (r, f, version_tuple_to_string(v)), conflicting_po) )
         for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
             po = txmbr.po
             for conflict in txmbr.po.returnPrco('conflicts'):
@@ -847,7 +841,7 @@ class Depsolve(object):
                 for conflicting_po in self.tsInfo.getProvides(r, f, v):
                     if conflicting_po.pkgtup[0] == po.pkgtup[0] and conflicting_po.pkgtup[2:] == po.pkgtup[2:]:
                         continue
-                    ret.append( (po, (r, flags[f], version_tuple_to_string(v)), conflicting_po) )
+                    ret.append( (po, (r, f, version_tuple_to_string(v)), conflicting_po) )
         return ret
 
 
diff --git a/yum/packages.py b/yum/packages.py
index 49630f6..7dbc3a0 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -310,8 +310,8 @@ class RpmBase(object):
                 continue
 
             if f == '=':
-                f = 'EQ'
-            if f != 'EQ' and prcotype == 'provides':
+                f = rpm.RPMSENSE_EQUAL
+            if f != rpm.RPMSENSE_EQUAL and prcotype == 'provides':
                 # isn't this odd, it's not 'EQ' and it is a provides
                 # - it really should be EQ
                 # use the pkgobj's evr for the comparison
@@ -752,7 +752,7 @@ class YumHeaderPackage(YumAvailablePackage):
                 continue
 
             lst = hdr[getattr(rpm, 'RPMTAG_%sFLAGS' % tag)]
-            flag = map(rpmUtils.miscutils.flagToString, lst)
+            # flag = map(rpmUtils.miscutils.flagToString, lst)
             flag = map(misc.share_data, flag)
 
             lst = hdr[getattr(rpm, 'RPMTAG_%sVERSION' % tag)]
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 786f06a..31c4eb0 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -27,6 +27,7 @@ import yumRepo
 from packages import PackageObject, RpmBase, YumAvailablePackage
 import Errors
 import misc
+import rpm
 
 from sqlutils import executeSQL
 import rpmUtils.miscutils
@@ -51,6 +52,13 @@ def catchSqliteException(func):
 def _share_data(value):
     return misc.share_data(value)
 
+_flags2rpm = {"GT": rpm.RPMSENSE_GREATER,
+              "GE": rpm.RPMSENSE_EQUAL | rpm.RPMSENSE_GREATER,
+              "LT": rpm.RPMSENSE_LESS,
+              "LE": rpm.RPMSENSE_LESS | rpm.RPMSENSE_EQUAL,
+              "EQ": rpm.RPMSENSE_EQUAL,
+              None: 0 }
+
 class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
     def __init__(self, repo, db_obj):
         self.prco = { 'obsoletes': (),
@@ -235,7 +243,7 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
             cur = self._sql_MD('primary', sql, (self.pkgKey,))
             self.prco[prcotype] = [ ]
             for ob in cur:
-                prco_set = (_share_data(ob['name']), _share_data(ob['flags']),
+                prco_set = (_share_data(ob['name']), _share_data(_flags2rpm[ob['flags']]),
                             (_share_data(ob['epoch']),
                              _share_data(ob['version']),
                              _share_data(ob['release'])))
@@ -592,7 +600,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
                         _share_data(ob['epoch']), _share_data(ob['version']),
                         _share_data(ob['release']))
                 (n,f,e,v,r) = ( _share_data(ob['oname']),
-                                _share_data(ob['oflags']),
+                                _share_data(_flags2rpm[ob['oflags']]),
                                 _share_data(ob['oepoch']),
                                 _share_data(ob['oversion']),
                                 _share_data(ob['orelease']))
@@ -639,7 +647,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
                 cur = cache.cursor()
                 executeSQL(cur, "select * from %s" % prcotype)
                 for x in cur:
-                    val = (_share_data(x['name']), _share_data(x['flags']),
+                    val = (_share_data(x['name']), _share_data(_flags2rpm[x['flags']]),
                            (_share_data(x['epoch']), _share_data(x['version']),
                             _share_data(x['release'])))
                     val = _share_data(val)
@@ -702,7 +710,7 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
                        (name,))
             tmp = { }
             for x in cur:
-                val = (_share_data(x['name']), _share_data(x['flags']),
+                val = (_share_data(x['name']), _share_data(_flags2rpm[x['flags']]),
                        (_share_data(x['epoch']), _share_data(x['version']),
                         _share_data(x['release'])))
                 val = _share_data(val)



More information about the Yum-cvs-commits mailing list