[yum-cvs] test/depsolvetests.py

James Bowes jbowes at linux.duke.edu
Tue Oct 9 03:02:32 UTC 2007


 test/depsolvetests.py |   89 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)

New commits:
commit fcc4d942762aa16089626f1d6d0b5269538df252
Author: James Bowes <jbowes at redhat.com>
Date:   Mon Oct 8 22:46:40 2007 -0400

    Add unit tests for package updates.
    
    This includes a failing test for the following case:
    A, B on system
    A requires B
    A' updates A
    A' obsoletes B
    Expected results:
    A, B removed
    A' on system
    Actual results:
    A not marked for removal
    
    Originally seen on rawhide, running yum update moving from
    NetworkManager 0.6.5 to 0.7.0

diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index ca48a7f..37f5c73 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -479,6 +479,95 @@ class DepsolveTests(unittest.TestCase):
         self.assertEquals(1, len(txmbrs))
         self.assertEquals(('zip', 'i386', None, '1', '3'), txmbrs[0].pkgtup)
 
+    def testUpdateSinglePackage(self):
+        ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
+        self.rpmdb.addPackage(ipo)
+
+        po = FakePackage('zsh', '1', '3', None, 'i386')
+        self.tsInfo.addUpdate(po, oldpo=ipo)
+
+        self.assertEquals('ok', self.resolveCode())
+
+        txmbrs = self.tsInfo.matchNaevr('zsh')
+        self.assertEquals(2, len(txmbrs))
+
+    def testUpdateSinglePackageNewRequires(self):
+        ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
+        self.rpmdb.addPackage(ipo)
+
+        po = FakePackage('zsh', '1', '3', None, 'i386')
+        po.addRequires('zip', None, (None, None, None))
+        self.tsInfo.addUpdate(po, oldpo=ipo)
+
+        xpo = FakePackage('zip', '1', '3', None, 'x86_64')
+        self.xsack.addPackage(xpo)
+
+        self.assertEquals('ok', self.resolveCode())
+
+        txmbrs = self.tsInfo.matchNaevr('zip')
+        self.assertEquals(1, len(txmbrs))
+        self.assertEquals(('zip', 'x86_64', None, '1', '3'), txmbrs[0].pkgtup)
+
+    def testUpdateSinglePackageOldRequires(self):
+        ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
+        ipo.addRequires('zip', None, (None, None, None))
+        self.rpmdb.addPackage(ipo)
+
+        xpo = FakePackage('zip', '1', '3', None, 'x86_64')
+        self.rpmdb.addPackage(xpo)
+
+        po = FakePackage('zsh', '1', '3', None, 'i386')
+        po.addRequires('zip', None, (None, None, None))
+        self.tsInfo.addUpdate(po, oldpo=ipo)
+
+        self.assertEquals('ok', self.resolveCode())
+
+        txmbrs = self.tsInfo.matchNaevr('zip')
+        self.assertEquals(0, len(txmbrs))
+
+    def testUpdateSinglePackageOldRequiresGone(self):
+        ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
+        ipo.addRequires('zip', None, (None, None, None))
+        self.rpmdb.addPackage(ipo)
+
+        xpo = FakePackage('zip', '1', '3', None, 'x86_64')
+        self.rpmdb.addPackage(xpo)
+
+        po = FakePackage('zsh', '1', '3', None, 'i386')
+        self.tsInfo.addUpdate(po, oldpo=ipo)
+
+        self.assertEquals('ok', self.resolveCode())
+
+    def testUpdateSinglePackageObsoletesOldRequirement(self):
+        ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
+        ipo.addRequires('zip', None, (None, None, None))
+        self.rpmdb.addPackage(ipo)
+
+        opo = FakePackage('zip', '1', '1', None, 'i386')
+        self.rpmdb.addPackage(opo)
+
+        po = FakePackage('zsh', '1', '3', None, 'i386')
+        ipo.addObsolete('zip', None, (None, None, None))
+
+        self.tsInfo.addObsoleting(po, opo)
+        self.tsInfo.addObsoleted(opo, po)
+
+        self.tsInfo.addUpdate(po, oldpo=ipo)
+
+        self.assertEquals('ok', self.resolveCode())
+
+        txmbrs = self.tsInfo.matchNaevr('zip')
+        self.assertEquals(1, len(txmbrs))
+
+        txmbrs = self.tsInfo.matchNaevr(name='zsh', rel='3')
+        self.assertEquals(1, len(txmbrs))
+        self.assertTrue('i', txmbrs[0].ts_state)
+
+        txmbrs = self.tsInfo.matchNaevr(name='zsh', rel='1')
+        self.assertEquals(1, len(txmbrs))
+        self.assertTrue('e', txmbrs[0].ts_state)
+
+
 def suite():
     suite = unittest.TestSuite()
     suite.addTest(unittest.makeSuite(DepsolveTests))



More information about the Yum-cvs-commits mailing list