[Yum-devel] [PATCH 1/2] Testcase to make sure a specifc nevra comes out of _compare_providers()
James Antill
james at and.org
Wed Aug 5 21:40:20 UTC 2009
---
test/simpleupdatetests.py | 59 +++++++++++++++++++++++++++++++++++++++++++++
test/testbase.py | 23 +++++++++++++++--
2 files changed, 79 insertions(+), 3 deletions(-)
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index d543013..b973fce 100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@ -694,3 +694,62 @@ class SimpleUpdateTests(OperationsTests):
[pa1, pa2, pa3])
self.assert_(res=='ok', msg)
self.assertResult((pa1, pa2, pa3))
+
+ def testUpdateMultiAvailPkgs1(self):
+ pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
+ pa1.addRequires('blah', 'EQ', ('0', '1', '1'))
+ pa2 = FakePackage('B', '1', '1', '0', 'i386')
+ pa2.addProvides('blah', 'EQ', ('0', '1', '1'))
+ pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
+ pa3.addProvides('blah', 'EQ', ('0', '1', '1'))
+ pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
+ pa4.addProvides('blah', 'EQ', ('0', '1', '1'))
+
+ res, msg = self.runOperation(['install', 'A'],
+ [],
+ [pa1, pa2, pa3, pa4])
+ self.assert_(res=='ok', msg)
+ self.assertResult((pa1, pa3))
+
+ def testUpdateMultiAvailPkgs2(self):
+ pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
+ pa1.addRequires('blah', 'EQ', ('0', '1', '1'))
+ pa2 = FakePackage('B', '1', '1', '0', 'i386')
+ pa2.addProvides('blah', 'EQ', ('0', '1', '1'))
+ pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
+ pa3.addProvides('blah', 'EQ', ('0', '1', '1'))
+ pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
+ pa4.addProvides('blah', 'EQ', ('0', '1', '1'))
+
+ res, msg = self.runOperation(['install', 'A'],
+ [],
+ [pa1, pa2, pa4, pa3])
+ self.assert_(res=='ok', msg)
+ self.assertResult((pa1, pa3))
+
+ def testUpdateMultiAvailPkgs3(self):
+ pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
+ pa1.addRequires('B', 'EQ', ('0', '1', '1'))
+ pa2 = FakePackage('B', '1', '1', '0', 'i386')
+ pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
+ pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
+
+ res, msg = self.runOperation(['install', 'A'],
+ [],
+ [pa1, pa2, pa3, pa4])
+ self.assert_(res=='ok', msg)
+ self.assertResult((pa1, pa3))
+
+
+ def testUpdateMultiAvailPkgs4(self):
+ pa1 = FakePackage('A', '1', '1', '0', 'x86_64')
+ pa1.addRequires('B', 'EQ', ('0', '1', '1'))
+ pa2 = FakePackage('B', '1', '1', '0', 'i386')
+ pa3 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('one'))
+ pa4 = FakePackage('B', '1', '1', '0', 'x86_64', repo=FakeRepo('two'))
+
+ res, msg = self.runOperation(['install', 'A'],
+ [],
+ [pa1, pa2, pa4, pa3])
+ self.assert_(res=='ok', msg)
+ self.assertResult((pa1, pa3))
diff --git a/test/testbase.py b/test/testbase.py
index d91c01c..cadc28b 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -49,6 +49,17 @@ class FakeRepo(object):
def __init__(self, id=None,sack=None):
self.id = id
self.sack = sack
+ self.cost = 1000
+
+ def __cmp__(self, other):
+ """ Sort base class repos. by alphanumeric on their id, also
+ see __cmp__ in YumRepository(). """
+ if self.id > other.id:
+ return 1
+ elif self.id < other.id:
+ return -1
+ else:
+ return 0
class FakePackage(packages.YumAvailablePackage):
@@ -290,10 +301,14 @@ class DepsolveTests(_DepsolveTestsBase):
for po in self.rpmdb:
po.repoid = po.repo.id = "installed"
for po in self.xsack:
- po.repoid = po.repo.id = "TestRepository"
+ if po.repo.id is None:
+ po.repo.id = "TestRepository"
+ po.repoid = po.repo.id
for txmbr in self.tsInfo:
if txmbr.ts_state in ('u', 'i'):
- txmbr.po.repoid = txmbr.po.repo.id = "TestRepository"
+ if txmbr.po.repo.id is None:
+ txmbr.po.repo.id = "TestRepository"
+ txmbr.po.repoid = txmbr.po.repo.id
else:
txmbr.po.repoid = txmbr.po.repo.id = "installed"
@@ -338,7 +353,9 @@ class OperationsTests(_DepsolveTestsBase):
po.repoid = po.repo.id = "installed"
self.depsolver.rpmdb.addPackage(po)
for po in available:
- po.repoid = po.repo.id = "TestRepository"
+ if po.repo.id is None:
+ po.repo.id = "TestRepository"
+ po.repoid = po.repo.id
self.depsolver._pkgSack.addPackage(po)
self.depsolver.basecmd = args[0]
--
1.6.2.5
More information about the Yum-devel
mailing list