[yum-git] Branch 'yum-3_2_X' - test/depsolvetests.py yum/__init__.py

James Antill james at linux.duke.edu
Wed Aug 6 06:14:14 UTC 2008


 test/depsolvetests.py |   26 ++++++++++++++++++++++----
 yum/__init__.py       |    8 +++++++-
 2 files changed, 29 insertions(+), 5 deletions(-)

New commits:
commit 05937e57b96f6f53218132964f347ac46c28e384
Author: James Antill <james at and.org>
Date:   Wed Aug 6 01:55:36 2008 -0400

    Fix testMultiPkgVersions[45] and don't break anything else

diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index e57148d..af873d4 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -865,10 +865,28 @@ class DepsolveTests(DepsolveTests):
         self.xsack.addPackage(po3)
 
         self.assertEquals('ok', *self.resolveCode())
-        # FIXME: This is wrong, it should be one of:
-        # self.assertResult((xpo, po3))
-        # self.assertResult((xpo, po2))
-        self.assertResult((xpo, po2, po3))
+        self.assertResult((xpo, po2))
+
+    def testMultiPkgVersions5(self):
+        ipo1 = FakePackage('abcd', arch='i386')
+        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'))
+        self.tsInfo.addUpdate(xpo, oldpo=ipo1)
+
+        po1 = FakePackage('Foo', arch='i386')
+        self.xsack.addPackage(po1)
+        po2 = FakePackage('Foo', version='2', arch='i686')
+        po3 = FakePackage('Foo', version='2', arch='i386')
+        self.xsack.addPackage(po3)
+        self.xsack.addPackage(po2)
+
+        self.assertEquals('ok', *self.resolveCode())
+        self.assertResult((xpo, po2))
 
     # Test from "Real Life" because we just can't think like they do
     def testRL_unison1(self):
diff --git a/yum/__init__.py b/yum/__init__.py
index 5c21db5..c6dcc99 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -2514,7 +2514,13 @@ class YumBase(depsolve.Depsolve):
             #        most likely correct
             pot_updated = self.rpmdb.searchNevra(name=available_pkg.name, arch=available_pkg.arch)
             for ipkg in pot_updated:
-                if ipkg.verLT(available_pkg):
+                if self.tsInfo.isObsoleted(ipkg.pkgtup):
+                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already obsoleted: %s.%s %s:%s-%s'), 
+                                            ipkg.pkgtup)
+                elif self.tsInfo.getMembersWithState(ipkg.pkgtup, [TS_UPDATED]):
+                    self.verbose_logger.log(logginglevels.DEBUG_2, _('Not Updating Package that is already updated: %s.%s %s:%s-%s'), 
+                                            ipkg.pkgtup)
+                elif ipkg.verLT(available_pkg):
                     txmbr = self.tsInfo.addUpdate(available_pkg, ipkg)
                     if requiringPo:
                         txmbr.setAsDep(requiringPo)



More information about the Yum-cvs-commits mailing list