[yum-commits] Branch 'yum-3_2_X' - 2 commits - test/skipbroken-tests.py test/testbase.py
Tim Lauridsen
timlau at osuosl.org
Wed Oct 29 11:19:27 UTC 2008
test/skipbroken-tests.py | 6 +++---
test/testbase.py | 31 ++++++++++++++++++++++++++++++-
2 files changed, 33 insertions(+), 4 deletions(-)
New commits:
commit a69588352502c1ea50d4d9ab2605932937f662fe
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Wed Oct 29 12:19:15 2008 +0100
added a skipbroken test case
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index e2e88b2..5129cde 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -385,7 +385,7 @@ class SkipBrokenTests(DepsolveTests):
self.assertResult([po1,po2,po3])
- def testInstalledFail(self):
+ def testBumpedSoName1(self):
"""
"""
a1 = self.instPackage('a', '1', arch='x86_64')
@@ -420,8 +420,8 @@ class SkipBrokenTests(DepsolveTests):
self.tsInfo.addUpdate(d2, oldpo=d1)
self.tsInfo.addUpdate(e2, oldpo=e1)
self.tsInfo.addUpdate(f2, oldpo=f1)
- self.assertEquals('err', *self.resolveCode(skip=False))
- #self.assertResult([a2,b2,c2,d2,e2,f2])
+ self.assertEquals('ok', *self.resolveCode(skip=True))
+ self.assertResult([a2,b1,c2,d1,e2,f2])
def resolveCode(self,skip = False):
solver = YumBase()
commit 7fe6c652f325c9384b21f90eeb054f195108b5b7
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Wed Oct 29 12:15:26 2008 +0100
make at FakeRpmDB class to use as self.rpmdb when doing unit tests, because PackageSack dont always behave the same as RPMDBSack, so it can break skipbroken tests using unversioned lib requests
diff --git a/test/testbase.py b/test/testbase.py
index 51224bc..0beffc6 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -210,6 +210,35 @@ class _DepsolveTestsBase(unittest.TestCase):
errors.append("\n")
self.fail("".join(errors))
+class FakeRpmDb(packageSack.PackageSack):
+ '''
+ We use a PackagePack for a Fake rpmdb insted of the normal
+ RPMDBPackageSack, getProvides works a little different on
+ unversioned requirements so we have to overload an add some
+ extra checkcode.
+ '''
+ def __init__(self):
+ packageSack.PackageSack.__init__(self)
+
+ def getProvides(self, name, flags=None, version=(None, None, None)):
+ """return dict { packages -> list of matching provides }"""
+ self._checkIndexes(failure='build')
+ result = { }
+ # convert flags & version for unversioned reqirements
+ if not version:
+ version=(None, None, None)
+ if flags == '0':
+ flags=None
+ for po in self.provides.get(name, []):
+ hits = po.matchingPrcos('provides', (name, flags, version))
+ if hits:
+ result[po] = hits
+ if name[0] == '/':
+ hit = (name, None, (None, None, None))
+ for po in self.searchFiles(name):
+ result.setdefault(po, []).append(hit)
+ return result
+
#######################################################################
### Derive Tests from these classes or unittest.TestCase ##############
@@ -238,7 +267,7 @@ class DepsolveTests(_DepsolveTestsBase):
""" Called at the start of each test. """
_DepsolveTestsBase.setUp(self)
self.tsInfo = transactioninfo.TransactionData()
- self.rpmdb = packageSack.PackageSack()
+ self.rpmdb = FakeRpmDb()
self.xsack = packageSack.PackageSack()
self.repo = FakeRepo("installed")
# XXX this side-affect is hacky:
More information about the Yum-commits
mailing list