[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