[yum-cvs] 6 commits - Makefile test/depsolvetests.py yum/packages.py
Tim Lauridsen
timlau at linux.duke.edu
Fri Sep 28 16:27:08 UTC 2007
Makefile | 2
test/depsolvetests.py | 423 ++++++++++++++++++++++++++++++++++++++++++++++----
yum/packages.py | 2
3 files changed, 399 insertions(+), 28 deletions(-)
New commits:
commit e2e415c95fb210eb706e0feea2fe8d24ccefa72f
Merge: 8206b59... 0d60290...
Author: Tim Lauridsen <tla at rasmil.dk>
Date: Fri Sep 28 18:23:32 2007 +0200
Merge branch 'check' of http://people.redhat.com/jantill/gits/yum
commit 0d60290ed025df5270b26184cbe035be1cbe2c6c
Author: James Antill <james at code.and.org>
Date: Fri Sep 7 23:45:04 2007 -0400
Add installed repo id, FakeInstPackage()
Added methods for FakePackage prco: provides, requires, conflicts, obsoletes
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index b2fe36f..ca48a7f 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -15,8 +15,8 @@ class FakeConf(object):
class FakeRepo(object):
- def __init__(self):
- self.id = None
+ def __init__(self, id=None):
+ self.id = id
class FakeRpmSack(packageSack.PackageSack):
@@ -26,7 +26,7 @@ class FakeRpmSack(packageSack.PackageSack):
class FakePackage(packages.PackageObject, packages.RpmBase):
- def __init__(self, name, version, release, epoch, arch):
+ def __init__(self, name, version, release, epoch, arch, repo=None):
packages.PackageObject.__init__(self)
packages.RpmBase.__init__(self)
@@ -40,14 +40,22 @@ class FakePackage(packages.PackageObject, packages.RpmBase):
self.prco['provides'].append((name, '=', (epoch, version, release)))
- self.repo = FakeRepo()
- self.repoid = None
+ if repo is None:
+ repo = FakeRepo()
+ self.repo = repo
+ self.repoid = repo.id
# Just a unique integer
self.id = self.__hash__()
+ def addProvides(self, name, evr):
+ self.prco['provides'].append((name, '=', evr))
def addRequires(self, name, flag, evr):
self.prco['requires'].append((name, flag, evr))
+ def addConflict(self, name, flag, evr):
+ self.prco['conflicts'].append((name, flag, evr))
+ def addObsolete(self, name, flag, evr):
+ self.prco['obsoletes'].append((name, flag, evr))
class TestingDepsolve(depsolve.Depsolve):
@@ -68,7 +76,7 @@ class TestingDepsolve(depsolve.Depsolve):
def build_depsolver(tsInfo, rpmdb=None, pkgSack=None):
if rpmdb is None:
- rpmdb = packageSack.PackageSack()
+ rpmdb = packageSack.PackageSack()
if pkgSack is None:
pkgSack = packageSack.PackageSack()
# XXX this side-affect is hacky:
@@ -85,10 +93,14 @@ class DepsolveTests(unittest.TestCase):
""" Called at the start of each test. """
self.tsInfo = transactioninfo.TransactionData()
self.rpmdb = FakeRpmSack()
- self.xs = packageSack.PackageSack()
+ self.xsack = packageSack.PackageSack()
+ self.repo = FakeRepo("installed")
+
+ def FakeInstPkg(self, name, version, release, epoch, arch):
+ return FakePackage(name, version, release, epoch, arch, self.repo)
- def resolveCode(self, *args):
- solver = build_depsolver(*args)
+ def resolveCode(self):
+ solver = build_depsolver(self.tsInfo, self.rpmdb, self.xsack)
result = solver.resolveDeps()
res = {0 : 'empty', 2 : 'ok', 1 : 'err'}
return (res[result[0]])
@@ -97,20 +109,20 @@ class DepsolveTests(unittest.TestCase):
po = FakePackage('zsh', '1', '1', None, 'i386')
self.tsInfo.addInstall(po)
self.tsInfo.remove(po.pkgtup)
- self.assertEquals('empty', self.resolveCode(self.tsInfo))
+ self.assertEquals('empty', self.resolveCode())
def testInstallSinglePackageNoRequires(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
self.tsInfo.addInstall(po)
- self.assertEquals('ok', self.resolveCode(self.tsInfo))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireNotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', None, (None, None, None))
self.tsInfo.addInstall(po)
- self.assertEquals('err', self.resolveCode(self.tsInfo))
+ self.assertEquals('err', self.resolveCode())
def testInstallSinglePackageRequireInstalled(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -120,7 +132,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1', '1', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireInstalledRequireNotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -131,7 +143,7 @@ class DepsolveTests(unittest.TestCase):
po.addRequires('zap', None, (None, None, None))
self.rpmdb.addPackage(ipo)
- self.assertEquals('err', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('err', self.resolveCode())
def testInstallSinglePackageRequireInstalledRequireInstall(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -144,48 +156,48 @@ class DepsolveTests(unittest.TestCase):
po.addRequires('zap', None, (None, None, None))
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireVer1NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', None, (None, '1.3', '2'))
+ po.addRequires('zip', 'EQ', (None, '1.3', '2'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.0', '2', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('err', self.resolveCode(self.tsInfo))
+ self.assertEquals('err', self.resolveCode())
def testInstallSinglePackageRequireVer1Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', None, (None, '1.3', '2'))
+ po.addRequires('zip', 'EQ', (None, '1.3', '2'))
self.tsInfo.addInstall(po)
- ipo = FakePackage('zip', '1.0', '2', None, 'i386')
+ ipo = FakePackage('zip', '1.3', '2', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireVer2NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', None, (None, '1.3', '4'))
+ po.addRequires('zip', 'EQ', (None, '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '2', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('err', self.resolveCode(self.tsInfo))
+ self.assertEquals('err', self.resolveCode())
def testInstallSinglePackageRequireVer2Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
- po.addRequires('zip', None, (None, '1.3', '4'))
+ po.addRequires('zip', 'EQ', (None, '1.3', '4'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireVer3NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -195,7 +207,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '4', '0', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('err', self.resolveCode(self.tsInfo))
+ self.assertEquals('err', self.resolveCode())
def testInstallSinglePackageRequireVer3Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -205,7 +217,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireVer4NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -215,7 +227,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('err', self.resolveCode(self.tsInfo))
+ self.assertEquals('err', self.resolveCode())
def testInstallSinglePackageRequireVer4_1Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -225,7 +237,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.0', '4', '2', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireVer4_2Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', 'LT', ('2', '1.3', '4'))
@@ -234,16 +246,16 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '3', '2', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireVer4_3Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', 'LT', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
- ipo = FakePackage('zip', '1.3', '4', None, 'i386')
+ ipo = self.FakeInstPkg('zip', '1.3', '4', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireVer4_4Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', 'LT', ('2', '1.3', '4'))
@@ -252,7 +264,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '4', '1', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireVer4_5Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', 'LT', ('2', '1.3', '4'))
@@ -261,7 +273,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '0.3', '4', '2', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
def testInstallSinglePackageRequireXtraBadVer(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -273,36 +285,138 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(ipo)
xpo = FakePackage('zap', '1.3', '4', '0', 'i386')
- self.xs.addPackage(xpo)
+ self.xsack.addPackage(xpo)
- self.assertEquals('err', self.resolveCode(self.tsInfo, self.rpmdb,
- self.xs))
+ self.assertEquals('err', self.resolveCode())
def testInstallSinglePackageRequireXtra(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', 'EQ', ('2', '1.3', '4'))
- po.addRequires('zap', 'EQ', ('2', '1.3', '4'))
+ po.addRequires('zap', 'EQ', ('4', '2.6', '8'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ xpo = FakePackage('zap', '2.6', '8', '4', 'i386')
+ self.xsack.addPackage(xpo)
+
+ self.assertEquals('ok', self.resolveCode())
+
+ txmbrs = self.tsInfo.matchNaevr()
+ self.assertEquals(2, len(txmbrs))
+ txmbrs = self.tsInfo.matchNaevr('zap')
+ self.assertEquals(1, len(txmbrs))
+ self.assertEquals(('zap', 'i386', '4', '2.6', '8'), txmbrs[0].pkgtup)
+ txmbrs = self.tsInfo.matchNaevr('zip')
+ self.assertEquals(0, len(txmbrs))
+ txmbrs = self.tsInfo.matchNaevr('zsh')
+ self.assertEquals(1, len(txmbrs))
+ self.assertEquals(('zsh', 'i386', None, '1', '1'), txmbrs[0].pkgtup)
+
+ def testInstallSinglePackageRequireInstalledRequireXtra(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'EQ', ('2', '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
+ ipo.addRequires('zap', 'EQ', ('4', '2.6', '8'))
+ self.rpmdb.addPackage(ipo)
+
+ xpo = FakePackage('zap', '2.6', '8', '4', 'i386')
+ self.xsack.addPackage(xpo)
+
+ self.assertEquals('ok', self.resolveCode())
+
+ txmbrs = self.tsInfo.matchNaevr()
+ self.assertEquals(1, len(txmbrs))
+ txmbrs = self.tsInfo.matchNaevr('zap')
+ self.assertEquals(0, len(txmbrs))
+ txmbrs = self.tsInfo.matchNaevr('zip')
+ self.assertEquals(0, len(txmbrs))
+ txmbrs = self.tsInfo.matchNaevr('zsh')
+ self.assertEquals(1, len(txmbrs))
+ self.assertEquals(('zsh', 'i386', None, '1', '1'), txmbrs[0].pkgtup)
+
+ def testInstallSinglePackageRequireUpgradeRequireXtraErr(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'EQ', ('4', '2.6', '8'))
self.tsInfo.addInstall(po)
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
+ ipo.addRequires('zap', 'EQ', ('2', '1.3', '3'))
self.rpmdb.addPackage(ipo)
+ xpo = FakePackage('zip', '2.6', '8', '4', 'i386')
+ xpo.addRequires('zap', 'EQ', ('2', '1.3', '4'))
+ self.xsack.addPackage(xpo)
xpo = FakePackage('zap', '1.3', '4', '2', 'i386')
- self.xs.addPackage(xpo)
+ xpo.addRequires('zsh', 'EQ', ('2', '4', '8'))
+ self.xsack.addPackage(xpo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb,
- self.xs))
+ self.assertEquals('err', self.resolveCode())
- def testInstallSinglePackageRequireNotProvidedMultiLib(self):
- po = FakePackage('zsh', '1', '1', None, 'x86_64')
- po.addRequires('zip', None, (None, None, None))
+ def testInstallSinglePackageRequireUpgradeRequireXtraOk(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'EQ', ('4', '2.6', '8'))
self.tsInfo.addInstall(po)
- ipo = FakePackage('zip', '1', '3', None, 'i386')
+ ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
+ ipo.addRequires('zap', 'EQ', ('2', '1.3', '3'))
self.rpmdb.addPackage(ipo)
+
+ xpo = FakePackage('zip', '2.6', '8', '4', 'i386')
+ xpo.addRequires('zap', 'EQ', ('2', '1.3', '4'))
+ self.xsack.addPackage(xpo)
+ xpo = FakePackage('zap', '1.3', '4', '2', 'i386')
+ self.xsack.addPackage(xpo)
- # self.assertEquals('err', self.resolveCode(self.tsInfo, self.rpmdb))
+ self.assertEquals('ok', self.resolveCode())
+ txmbrs = self.tsInfo.matchNaevr()
+ self.assertEquals(3, len(txmbrs))
+
+ txmbrs = self.tsInfo.matchNaevr('zap')
+ self.assertEquals(1, len(txmbrs))
+ self.assertEquals(('zap', 'i386', '2', '1.3', '4'), txmbrs[0].pkgtup)
+
+ txmbrs = self.tsInfo.matchNaevr('zip')
+ self.assertEquals(1, len(txmbrs))
+ self.assertEquals(('zip', 'i386', '4', '2.6', '8'), txmbrs[0].pkgtup)
+
+ txmbrs = self.tsInfo.matchNaevr('zsh')
+ self.assertEquals(1, len(txmbrs))
+ self.assertEquals(('zsh', 'i386', None, '1', '1'), txmbrs[0].pkgtup)
+
+ def testInstallSinglePackageRequireMultiXtra(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'EQ', ('4', '2.6', '8'))
+ self.tsInfo.addInstall(po)
+
+ xpo = FakePackage('zip', '2.6', '8', '4', 'i386')
+ xpo.addRequires('zap', 'EQ', ('2', '1.3', '4'))
+ self.xsack.addPackage(xpo)
+
+ xpo = FakePackage('zap', '1.3', '4', '2', 'i386')
+ self.xsack.addPackage(xpo)
+
+ self.assertEquals('ok', self.resolveCode())
+
+ txmbrs = self.tsInfo.matchNaevr()
+ self.assertEquals(3, len(txmbrs))
+
+ txmbrs = self.tsInfo.matchNaevr('zap')
+ self.assertEquals(1, len(txmbrs))
+ self.assertEquals(('zap', 'i386', '2', '1.3', '4'), txmbrs[0].pkgtup)
+
+ txmbrs = self.tsInfo.matchNaevr('zip')
+ self.assertEquals(1, len(txmbrs))
+ self.assertEquals(('zip', 'i386', '4', '2.6', '8'), txmbrs[0].pkgtup)
+
+ txmbrs = self.tsInfo.matchNaevr('zsh')
+ self.assertEquals(1, len(txmbrs))
+ self.assertEquals(('zsh', 'i386', None, '1', '1'), txmbrs[0].pkgtup)
+
def testInstallSinglePackageRequireInstalledMultiLib(self):
po = FakePackage('zsh', '1', '1', None, 'x86_64')
po.addRequires('zip', None, (None, None, None))
@@ -310,10 +424,60 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1', '3', None, 'i386')
self.rpmdb.addPackage(ipo)
- ipo = FakePackage('zip', '1', '3', None, 'x86_64')
- self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ xpo = FakePackage('zip', '1', '3', None, 'x86_64')
+ self.xsack.addPackage(xpo)
+
+ self.assertEquals('ok', self.resolveCode())
+
+ txmbrs = self.tsInfo.matchNaevr('zip')
+ self.assertEquals(0, len(txmbrs))
+
+ def testInstallSinglePackageRequireXtra1MultiLib(self):
+ po = FakePackage('zsh', '1', '1', None, 'x86_64')
+ po.addRequires('zip', None, (None, None, None))
+ self.tsInfo.addInstall(po)
+
+ xpo = FakePackage('zip', '1', '3', None, 'i386')
+ self.xsack.addPackage(xpo)
+
+ self.assertEquals('ok', self.resolveCode())
+
+ txmbrs = self.tsInfo.matchNaevr('zip')
+ self.assertEquals(1, len(txmbrs))
+ self.assertEquals(('zip', 'i386', None, '1', '3'), txmbrs[0].pkgtup)
+
+ def testInstallSinglePackageRequireXtra2_64MultiLib(self):
+ po = FakePackage('zsh', '1', '1', None, 'x86_64')
+ po.addRequires('zip', None, (None, None, None))
+ self.tsInfo.addInstall(po)
+
+ xpo = FakePackage('zip', '1', '3', None, 'i386')
+ self.xsack.addPackage(xpo)
+ 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 testInstallSinglePackageRequireXtra2_32MultiLib(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', None, (None, None, None))
+ self.tsInfo.addInstall(po)
+
+ xpo = FakePackage('zip', '1', '3', None, 'i386')
+ self.xsack.addPackage(xpo)
+ 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', 'i386', None, '1', '3'), txmbrs[0].pkgtup)
def suite():
suite = unittest.TestSuite()
commit a6da8c66c7d9deb268a793229fc249a3bf397fcb
Author: James Antill <james at code.and.org>
Date: Thu Sep 6 18:13:14 2007 -0400
Multiple sacks
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index fe52a62..b2fe36f 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -19,6 +19,11 @@ class FakeRepo(object):
self.id = None
+class FakeRpmSack(packageSack.PackageSack):
+ def installed(self, po):
+ """ Hack. Hack. Hack. """
+ return False
+
class FakePackage(packages.PackageObject, packages.RpmBase):
def __init__(self, name, version, release, epoch, arch):
@@ -61,15 +66,17 @@ class TestingDepsolve(depsolve.Depsolve):
pkgtup[4], pkgtup[1])[0]
-def build_depsolver(tsInfo, rpmdb=packageSack.PackageSack(),
- pkgSack=packageSack.PackageSack()):
+def build_depsolver(tsInfo, rpmdb=None, pkgSack=None):
+ if rpmdb is None:
+ rpmdb = packageSack.PackageSack()
+ if pkgSack is None:
+ pkgSack = packageSack.PackageSack()
# XXX this side-affect is hacky:
tsInfo.setDatabases(rpmdb, pkgSack)
solver = TestingDepsolve(tsInfo, rpmdb, pkgSack)
return solver
-
class DepsolveTests(unittest.TestCase):
tsInfo = None
@@ -77,7 +84,8 @@ class DepsolveTests(unittest.TestCase):
def setUp(self):
""" Called at the start of each test. """
self.tsInfo = transactioninfo.TransactionData()
- self.rpmdb = packageSack.PackageSack()
+ self.rpmdb = FakeRpmSack()
+ self.xs = packageSack.PackageSack()
def resolveCode(self, *args):
solver = build_depsolver(*args)
@@ -255,6 +263,36 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ def testInstallSinglePackageRequireXtraBadVer(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'EQ', ('2', '1.3', '4'))
+ po.addRequires('zap', 'EQ', ('2', '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ xpo = FakePackage('zap', '1.3', '4', '0', 'i386')
+ self.xs.addPackage(xpo)
+
+ self.assertEquals('err', self.resolveCode(self.tsInfo, self.rpmdb,
+ self.xs))
+
+ def testInstallSinglePackageRequireXtra(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'EQ', ('2', '1.3', '4'))
+ po.addRequires('zap', 'EQ', ('2', '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ xpo = FakePackage('zap', '1.3', '4', '2', 'i386')
+ self.xs.addPackage(xpo)
+
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb,
+ self.xs))
+
def testInstallSinglePackageRequireNotProvidedMultiLib(self):
po = FakePackage('zsh', '1', '1', None, 'x86_64')
po.addRequires('zip', None, (None, None, None))
commit 971518054fd53161c8b3e31576e82210d9d39fc5
Author: James Antill <james at code.and.org>
Date: Thu Sep 6 16:58:55 2007 -0400
Add check for empty
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index ce10950..fe52a62 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -82,9 +82,15 @@ class DepsolveTests(unittest.TestCase):
def resolveCode(self, *args):
solver = build_depsolver(*args)
result = solver.resolveDeps()
- res = {2 : 'ok', 1 : 'err'}
+ res = {0 : 'empty', 2 : 'ok', 1 : 'err'}
return (res[result[0]])
+ def testEmpty(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ self.tsInfo.addInstall(po)
+ self.tsInfo.remove(po.pkgtup)
+ self.assertEquals('empty', self.resolveCode(self.tsInfo))
+
def testInstallSinglePackageNoRequires(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
self.tsInfo.addInstall(po)
commit 6fde55d5a441c8d0828636c05f531070393f64e3
Author: James Antill <james at code.and.org>
Date: Thu Sep 6 16:51:09 2007 -0400
Add lots of tests, and fix matchingPrcos to pass GE
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 11c7fc3..ce10950 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -72,45 +72,204 @@ def build_depsolver(tsInfo, rpmdb=packageSack.PackageSack(),
class DepsolveTests(unittest.TestCase):
+ tsInfo = None
+ rpmdb = None
+ def setUp(self):
+ """ Called at the start of each test. """
+ self.tsInfo = transactioninfo.TransactionData()
+ self.rpmdb = packageSack.PackageSack()
+
+ def resolveCode(self, *args):
+ solver = build_depsolver(*args)
+ result = solver.resolveDeps()
+ res = {2 : 'ok', 1 : 'err'}
+ return (res[result[0]])
+
def testInstallSinglePackageNoRequires(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
+ self.tsInfo.addInstall(po)
- tsInfo = transactioninfo.TransactionData()
- tsInfo.addInstall(po)
+ self.assertEquals('ok', self.resolveCode(self.tsInfo))
- solver = build_depsolver(tsInfo)
+ def testInstallSinglePackageRequireNotProvided(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', None, (None, None, None))
+ self.tsInfo.addInstall(po)
- res = solver.resolveDeps()
- self.assertEquals(2, res[0])
+ self.assertEquals('err', self.resolveCode(self.tsInfo))
- def testInstallSinglePackageRequireNotProvided(self):
+ def testInstallSinglePackageRequireInstalled(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', None, (None, None, None))
+ self.tsInfo.addInstall(po)
- tsInfo = transactioninfo.TransactionData()
- tsInfo.addInstall(po)
+ ipo = FakePackage('zip', '1', '1', None, 'i386')
+ self.rpmdb.addPackage(ipo)
- solver = build_depsolver(tsInfo)
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
- res = solver.resolveDeps()
- self.assertEquals(1, res[0])
+ def testInstallSinglePackageRequireInstalledRequireNotProvided(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', None, (None, None, None))
+ self.tsInfo.addInstall(po)
- def testInstallSinglePackageRequireInstalled(self):
+ ipo = FakePackage('zip', '1', '2', None, 'i386')
+ po.addRequires('zap', None, (None, None, None))
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('err', self.resolveCode(self.tsInfo, self.rpmdb))
+
+ def testInstallSinglePackageRequireInstalledRequireInstall(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', None, (None, None, None))
+ self.tsInfo.addInstall(po)
+ po = FakePackage('zap', '1', '2', None, 'i386')
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1', '3', None, 'i386')
+ po.addRequires('zap', None, (None, None, None))
+ self.rpmdb.addPackage(ipo)
- tsInfo = transactioninfo.TransactionData()
- tsInfo.addInstall(po)
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+
+
+ def testInstallSinglePackageRequireVer1NotProvided(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', None, (None, '1.3', '2'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.0', '2', None, 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('err', self.resolveCode(self.tsInfo))
+
+ def testInstallSinglePackageRequireVer1Installed(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', None, (None, '1.3', '2'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.0', '2', None, 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+
+ def testInstallSinglePackageRequireVer2NotProvided(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', None, (None, '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '2', None, 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('err', self.resolveCode(self.tsInfo))
+
+ def testInstallSinglePackageRequireVer2Installed(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', None, (None, '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '4', None, 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+
+ def testInstallSinglePackageRequireVer3NotProvided(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'GE', ('1', '1.3', '4'))
+ self.tsInfo.addInstall(po)
- installedpo = FakePackage('zip', '1', '1', None, 'i386')
- rpmdb = packageSack.PackageSack()
- rpmdb.addPackage(installedpo)
+ ipo = FakePackage('zip', '1.3', '4', '0', 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('err', self.resolveCode(self.tsInfo))
- solver = build_depsolver(tsInfo, rpmdb)
+ def testInstallSinglePackageRequireVer3Installed(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'GE', ('2', '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+
+ def testInstallSinglePackageRequireVer4NotProvided(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('err', self.resolveCode(self.tsInfo))
+
+ def testInstallSinglePackageRequireVer4_1Installed(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.0', '4', '2', 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ def testInstallSinglePackageRequireVer4_2Installed(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '3', '2', 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ def testInstallSinglePackageRequireVer4_3Installed(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '4', None, 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ def testInstallSinglePackageRequireVer4_4Installed(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '4', '1', 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+ def testInstallSinglePackageRequireVer4_5Installed(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'LT', ('2', '1.3', '4'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '0.3', '4', '2', 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
+
+ def testInstallSinglePackageRequireNotProvidedMultiLib(self):
+ po = FakePackage('zsh', '1', '1', None, 'x86_64')
+ po.addRequires('zip', None, (None, None, None))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1', '3', None, 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ # self.assertEquals('err', self.resolveCode(self.tsInfo, self.rpmdb))
+
+ def testInstallSinglePackageRequireInstalledMultiLib(self):
+ po = FakePackage('zsh', '1', '1', None, 'x86_64')
+ po.addRequires('zip', None, (None, None, None))
+ self.tsInfo.addInstall(po)
- res = solver.resolveDeps()
- self.assertEquals(2, res[0])
+ ipo = FakePackage('zip', '1', '3', None, 'i386')
+ self.rpmdb.addPackage(ipo)
+ ipo = FakePackage('zip', '1', '3', None, 'x86_64')
+ self.rpmdb.addPackage(ipo)
+ self.assertEquals('ok', self.resolveCode(self.tsInfo, self.rpmdb))
def suite():
suite = unittest.TestSuite()
diff --git a/yum/packages.py b/yum/packages.py
index d11816e..43fa097 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -277,6 +277,8 @@ class RpmBase(object):
if reqn != n:
continue
+ if f == '=':
+ f = 'EQ'
if f != 'EQ' and prcotype == 'provides':
# isn't this odd, it's not 'EQ' and it is a provides
# - it really should be EQ
commit fbcfd21596ff5ee53c06aaf7f533af4b9e675dc5
Author: James Antill <james at code.and.org>
Date: Thu Sep 6 16:50:13 2007 -0400
Make check an alias for test
diff --git a/Makefile b/Makefile
index 6735547..62121e3 100644
--- a/Makefile
+++ b/Makefile
@@ -43,6 +43,8 @@ docs:
test:
python test/alltests.py
+check: test
+
archive: remove_spec = ${PKGNAME}-daily.spec
archive: _archive
More information about the Yum-cvs-commits
mailing list