[yum-cvs] 11 commits - rpmUtils/updates.py test/alltests.py test/depsolvetests.py test/operationstests.py test/simpleobsoletestests.py test/simpleremovetests.py test/simpleupdatetests.py test/testbase.py yum/depsolve.py yum/packageSack.py yum/transactioninfo.py
Florian Festi
ffesti at linux.duke.edu
Thu Nov 29 15:41:46 UTC 2007
rpmUtils/updates.py | 29 ---
test/alltests.py | 25 +-
test/depsolvetests.py | 7
test/operationstests.py | 365 ++++++++-----------------------------------
test/simpleobsoletestests.py | 226 ++++++++++++++++++++++++++
test/simpleremovetests.py | 72 ++++++++
test/simpleupdatetests.py | 232 +++++++++++++++++++++++++++
test/testbase.py | 2
yum/depsolve.py | 5
yum/packageSack.py | 4
yum/transactioninfo.py | 11 -
11 files changed, 639 insertions(+), 339 deletions(-)
New commits:
commit cb1da528bb56f2b2d006da0a861126e84ececa13
Author: Florian Festi <ffesti at redhat.com>
Date: Thu Nov 8 11:13:47 2007 +0100
Packages that are to be removed can't be local packages.
This fixes remove test cases for now - better criteria still
needed.
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 22efc44..455fb19 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -445,11 +445,8 @@ class DepsolveTests(DepsolveTests):
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
self.xsack.addPackage(updatepo)
- if new_behavior:
- self.assertEquals('ok', *self.resolveCode())
- self.assertResult((po, updatepo))
- else:
- self.assertEquals('err', *self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
+ self.assertResult((po, updatepo))
def testUpdateForConflict2(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
diff --git a/yum/transactioninfo.py b/yum/transactioninfo.py
index 29954c8..8aed378 100644
--- a/yum/transactioninfo.py
+++ b/yum/transactioninfo.py
@@ -153,6 +153,10 @@ class TransactionData:
return result
+ def _isLocalPackage(self, txmember):
+ # Is this the right criteria?
+ return txmember.ts_state in ('u', 'i') and not isinstance(txmember.po, (YumInstalledPackage, YumAvailablePackageSqlite))
+
def add(self, txmember):
"""add a package to the transaction"""
@@ -170,9 +174,7 @@ class TransactionData:
self.pkgdict[txmember.pkgtup].append(txmember)
self._namedict.setdefault(txmember.name, []).append(txmember)
self.changed = True
-
- # Is this the right criteria?
- if not isinstance(txmember.po, (YumInstalledPackage, YumAvailablePackageSqlite)):
+ if self._isLocalPackage(txmember):
self.localSack.addPackage(txmember.po)
elif isinstance(txmember.po, YumAvailablePackageSqlite):
self.pkgSackPackages += 1
@@ -190,8 +192,7 @@ class TransactionData:
return
for txmbr in self.pkgdict[pkgtup]:
txmbr.po.state = None
- # Is this the right criteria?
- if not isinstance(txmbr.po, (YumInstalledPackage, YumAvailablePackageSqlite)):
+ if self._isLocalPackage(txmbr):
self.localSack.delPackage(txmbr.po)
elif isinstance(txmbr.po, YumAvailablePackageSqlite):
self.pkgSackPackages -= 1
commit 4ab195d6b7d937b1544d10244802a85a3f8060d5
Author: Florian Festi <ffesti at redhat.com>
Date: Mon Nov 12 14:57:14 2007 +0100
Work around unreliable result of .update()
Add test cases
diff --git a/test/operationstests.py b/test/operationstests.py
index 341bb3a..51f3241 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -18,6 +18,40 @@ class ComplicatedTests(OperationsTests):
self.assert_(res=='ok', msg)
self.assertResult((p.obsoletes_i386, p.conflicts))
+class CombinedUpdateObsoletesTest(OperationsTests):
+
+ @staticmethod
+ def buildPkgs(pkgs, *args):
+ pkgs.k_1 = FakePackage('k', '3.5')
+ pkgs.kdevel_1 = FakePackage('k-devel', '3.5')
+ pkgs.kdevel_1.addRequires('k')
+ pkgs.klibs_1_i386 = FakePackage('klibs', '3.5', arch='i386')
+ pkgs.klibs_1_x86_64 = FakePackage('klibs', '3.5', arch='x86_64')
+ pkgs.k_2 = FakePackage('k', '3.5', '2')
+ pkgs.kdevel_2 = FakePackage('k-devel', '3.5', '2')
+ pkgs.kdevel_2.addRequires('k')
+ pkgs.klibs_2_i386 = FakePackage('klibs', '3.5', '2', arch='i386')
+ pkgs.klibs_2_i386.addObsoletes('klibs', 'LT', (None, '3.5', '2'))
+ pkgs.klibs_2_i386.addObsoletes('k', 'LT', (None, '3.5', '2'))
+ pkgs.klibs_2_x86_64 = FakePackage('klibs', '3.5', '2', arch='x86_64')
+ pkgs.klibs_2_x86_64.addObsoletes('klibs', 'LT', (None, '3.5', '2'))
+ pkgs.klibs_2_x86_64.addObsoletes('k', 'LT', (None, '3.5', '2'))
+
+ def testSelfObsolete(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.klibs_1_x86_64], [p.klibs_2_i386, p.klibs_2_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.klibs_2_x86_64,))
+
+ def testPackageSplitWithObsoleteAndRequiresForUpdate(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.k_1, p.kdevel_1, p.klibs_1_x86_64],
+ [p.k_2, p.kdevel_2, p.klibs_2_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.k_2, p.kdevel_2, p.klibs_2_x86_64,))
+
+
+
class ComplicatedObsoletesTests(OperationsTests):
@staticmethod
@@ -81,6 +115,7 @@ class ComplicatedObsoletesTests(OperationsTests):
def suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(ComplicatedObsoletesTests))
+ suite.addTest(unittest.makeSuite(CombinedUpdateObsoletesTest))
suite.addTest(unittest.makeSuite(ComplicatedTests))
return suite
diff --git a/yum/depsolve.py b/yum/depsolve.py
index e026db2..48dd48c 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -501,9 +501,10 @@ class Depsolve(object):
# find the best one
# try updating the already install pkgs
+ length = len(self.tsInfo)
for pkg in provSack.returnNewestByName():
- txmbrs = self.update(name=pkg.name, epoch=pkg.epoch, version=pkg.version, rel=pkg.rel)
- if txmbrs:
+ self.update(name=pkg.name, epoch=pkg.epoch, version=pkg.version, rel=pkg.rel)
+ if len(self.tsInfo) != length:
checkdeps = True
return checkdeps, missingdep
commit 4ac059d65428a241be7f0b574ee2526267b5403d
Author: Florian Festi <ffesti at redhat.com>
Date: Thu Nov 8 13:56:26 2007 +0100
Add some remove test cases
diff --git a/test/simpleremovetests.py b/test/simpleremovetests.py
new file mode 100644
index 0000000..a6e2015
--- /dev/null
+++ b/test/simpleremovetests.py
@@ -0,0 +1,72 @@
+from testbase import *
+
+class SimpleRemoveTests(OperationsTests):
+
+ @staticmethod
+ def buildPkgs(pkgs, *args):
+ pkgs.leaf = FakePackage('foo', '2.5', '1.1', '0', 'noarch')
+ pkgs.leaf.addFile('/bin/foo')
+
+ pkgs.requires_leaf = FakePackage('bar', '4')
+ pkgs.requires_leaf.addRequires('foo')
+
+ pkgs.requires_file = FakePackage('barkeeper', '0.8')
+ pkgs.requires_file.addRequires('/bin/foo')
+
+ pkgs.rr_leaf = FakePackage('baz', '5.3')
+ pkgs.rr_leaf.addRequires('bar')
+
+ pkgs.provides_leaf = FakePackage('foo-ng', '2.5')
+ pkgs.provides_leaf.addProvides('foo')
+
+ def testRemoveSingle(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['remove', 'foo'], [p.leaf], [])
+ self.assert_(res=='ok', msg)
+ self.assertResult( () )
+
+ def testRemoveRequired(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['remove', 'foo'], [p.leaf, p.requires_leaf], [])
+ self.assert_(res=='ok', msg)
+ self.assertResult( () )
+
+ def testRemoveRequiredMissing(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['remove', 'bar'], [p.requires_leaf], [])
+ self.assert_(res=='ok', msg)
+ self.assertResult( () )
+
+ def testRemoveRequiredProvided(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['remove', 'foo'], [p.leaf, p.requires_leaf, p.provides_leaf], [])
+ self.assert_(res=='ok', msg)
+ self.assertResult( (p.requires_leaf, p.provides_leaf) )
+
+ def testRemoveRequiredAvailable(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['remove', 'foo'], [p.leaf, p.requires_leaf], [p.provides_leaf])
+ self.assert_(res=='ok', msg)
+ self.assertResult( () )
+
+ def testRemoveRequiredChain(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['remove', 'foo'], [p.leaf, p.requires_leaf, p.rr_leaf], [])
+ self.assert_(res=='ok', msg)
+ self.assertResult( () )
+
+ def testRemoveRequiredFile(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['remove', 'foo'], [p.leaf, p.requires_file], [])
+ self.assert_(res=='ok', msg)
+ self.assertResult( () )
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(SimpleRemoveTests))
+ return suite
+
+if __name__ == "__main__":
+ unittest.main(defaultTest="suite")
+
+
commit 7033402f9d1b297fa3ceddccd7c6aed5554ea114
Author: Florian Festi <ffesti at redhat.com>
Date: Thu Nov 8 12:25:33 2007 +0100
Fix PackageSack.getProvides to also return files
diff --git a/yum/packageSack.py b/yum/packageSack.py
index f150cf3..408988d 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -482,6 +482,10 @@ class PackageSack(PackageSackBase):
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
def getRequires(self, name, flags=None, version=(None, None, None)):
commit f3ca137663b7a812e8cba5e7c9fd1e35f54f0dbf
Author: Florian Festi <ffesti at redhat.com>
Date: Tue Nov 6 17:13:22 2007 +0100
Add ObsoletesChain and ObsoletesCircle test cases
diff --git a/test/operationstests.py b/test/operationstests.py
index fa842d9..341bb3a 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -18,8 +18,69 @@ class ComplicatedTests(OperationsTests):
self.assert_(res=='ok', msg)
self.assertResult((p.obsoletes_i386, p.conflicts))
+class ComplicatedObsoletesTests(OperationsTests):
+
+ @staticmethod
+ def buildPkgs(pkgs, *args):
+ pkgs.installed = FakePackage('foo', '1.4', '1')
+ pkgs.obsoletecircle = FakePackage('foo', '1.4', '1')
+ pkgs.obsoletecircle.addObsoletes('baz')
+ pkgs.obsoletes = FakePackage('bar', '1.2', '1')
+ pkgs.obsoletes.addObsoletes('foo')
+ pkgs.obsoletes2 = FakePackage('baz', '1.8', '1')
+ pkgs.obsoletes2.addObsoletes('bar')
+
+ def testObsoleteChain(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed], [p.obsoletes, p.obsoletes2])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.obsoletes2,))
+ else:
+ self.assertResult((p.obsoletes,))
+ def testObsoleteChainNext(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.obsoletes], [p.obsoletes2])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes2,))
+
+ def testObsoleteCircle(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.obsoletecircle], [p.obsoletes, p.obsoletes2])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.obsoletecircle,))
+ else:
+ self.assertResult((p.obsoletes,))
+ def testObsoleteCircleNext(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.obsoletes], [p.obsoletecircle, p.obsoletes, p.obsoletes2])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.obsoletes,))
+ else:
+ self.assertResult((p.obsoletes2,))
+ def testObsoleteCircleNextNext(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.obsoletes2], [p.obsoletecircle, p.obsoletes, p.obsoletes2])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.obsoletes2,))
+ else:
+ self.assertResult((p.obsoletecircle,))
+ def testObsoleteCircleNextNextNext(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.obsoletecircle], [p.obsoletes, p.obsoletes2])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.obsoletecircle,))
+ else:
+ self.assertResult((p.obsoletes,))
+ # continue endlessly
+
def suite():
suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(ComplicatedObsoletesTests))
suite.addTest(unittest.makeSuite(ComplicatedTests))
return suite
commit 60fd07bebda9ee2785079fac2dd8d7ae89039b1e
Author: Florian Festi <ffesti at redhat.com>
Date: Tue Nov 6 17:12:39 2007 +0100
Make the Update i386,x86_64 -> i386/x86_64 tests stop complaining
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index d37ee7e..a872559 100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@ -179,7 +179,8 @@ class SimpleUpdateTests(OperationsTests):
res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386])
self.assert_(res=='ok', msg)
if new_behavior:
- self.assertResult((p.update_i386,)) # XXX is this right?
+ self.assertResult((p.update_i386, p.installed_x86_64))
+ # self.assertResult((p.update_i386,)) # XXX is this right?
else:
self.assertResult((p.update_i386, p.installed_x86_64))
def testUpdateMultilibToi386ForDependency(self):
@@ -187,7 +188,8 @@ class SimpleUpdateTests(OperationsTests):
res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.requires_update])
self.assert_(res=='ok', msg)
if new_behavior:
- self.assertResult((p.update_i386, p.requires_update)) # XXX is this right?
+ self.assertResult((p.update_i386, p.installed_x86_64, p.requires_update))
+ # self.assertResult((p.update_i386, p.requires_update)) # XXX is this right?
else:
self.assertResult((p.update_i386, p.installed_x86_64, p.requires_update))
@@ -196,7 +198,8 @@ class SimpleUpdateTests(OperationsTests):
res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_x86_64])
self.assert_(res=='ok', msg)
if new_behavior:
- self.assertResult((p.update_x86_64,)) # XXX is this right?
+ self.assertResult((p.update_x86_64, p.installed_i386))
+ # self.assertResult((p.update_x86_64,)) # XXX is this right?
else:
self.assertResult((p.update_x86_64, p.installed_i386))
def testUpdateMultilibTox86_64ForDependency(self):
@@ -204,7 +207,8 @@ class SimpleUpdateTests(OperationsTests):
res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_x86_64, p.requires_update])
self.assert_(res=='ok', msg)
if new_behavior:
- self.assertResult((p.update_x86_64, p.requires_update)) # XXX is this right?
+ self.assertResult((p.update_x86_64, p.installed_i386, p.requires_update))
+ # self.assertResult((p.update_x86_64, p.requires_update)) # XXX is this right?
else:
self.assertResult((p.update_x86_64, p.installed_i386, p.requires_update))
commit 6a9dc506d7f28bc416b86e353263afca37f2d408
Author: Florian Festi <ffesti at redhat.com>
Date: Tue Nov 6 17:11:01 2007 +0100
set default values for the FakePackage constructor
diff --git a/test/testbase.py b/test/testbase.py
index 3c90636..50bd9cb 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -43,7 +43,7 @@ class FakeRepo(object):
class FakePackage(packages.YumAvailablePackage):
- def __init__(self, name, version, release, epoch, arch, repo=None):
+ def __init__(self, name, version='1.0', release='1', epoch='0', arch='noarch', repo=None):
if repo is None:
repo = FakeRepo()
packages.YumAvailablePackage.__init__(self, repo)
commit b6bf93bd26c73673d2ef4c625d2c257b92562335
Author: Florian Festi <ffesti at redhat.com>
Date: Tue Nov 6 16:38:58 2007 +0100
Move SimpleUpdateTests into an own module
diff --git a/test/operationstests.py b/test/operationstests.py
index 3bab8a4..fa842d9 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -1,226 +1,6 @@
from testbase import *
from simpleobsoletestests import SimpleObsoletesTests
-class SimpleUpdateTests(OperationsTests):
-
- @staticmethod
- def buildPkgs(pkgs, *args):
- # installed
- pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
- pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
- pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
- # updates
- pkgs.update_i386 = FakePackage('zsh', '2', '1', '0', 'i386')
- pkgs.update_x86_64 = FakePackage('zsh', '2', '1', '0', 'x86_64')
- pkgs.update_noarch = FakePackage('zsh', '2', '1', '0', 'noarch')
- # requires update
- pkgs.requires_update = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
- pkgs.requires_update.addRequires('zsh', 'EQ', ('0', '2', '1'))
-
- # noarch to X
-
- def testUpdatenoarchTonoarch(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_noarch,])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_noarch,))
- def testUpdatenoarchTonoarchForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_noarch, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_noarch, p.requires_update))
-
- def testUpdatenoarchToi386(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386,])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386,))
- def testUpdatenoarchToi386ForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386, p.requires_update))
-
- def testUpdatenoarchTox86_64(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_x86_64,])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_x86_64,))
- def testUpdatenoarchTox86_64ForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_x86_64, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_x86_64, p.requires_update))
-
- def testUpdatenoarchToMultilib(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386, p.update_x86_64])
- self.assert_(res=='ok', msg)
- if new_behavior:
- self.assertResult((p.update_x86_64,), (p.update_i386,)) # ?
- else:
- self.assertResult((p.update_i386, p.update_x86_64))
- def testUpdatenoarchToMultilibForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.update_x86_64, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_x86_64, p.requires_update), (p.update_i386,))
-
- # i386 to X
-
- def testUpdatei386Tonoarch(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_noarch])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_noarch,))
- def testUpdatei386TonoarchForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_noarch, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_noarch, p.requires_update))
-
- def testUpdatei386Toi386(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386,))
- def testUpdatei386Toi386ForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_i386, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386, p.requires_update))
-
- def testUpdatei386Tox86_64(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_x86_64])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_x86_64,))
- def testUpdatei386Tox86_64ForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_x86_64, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_x86_64, p.requires_update))
-
- def testUpdatei386ToMultilib(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386, p.update_x86_64])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386,))
- def testUpdatei386ToMultilibForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_i386, p.update_x86_64, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386, p.requires_update))
-
- # x86_64 to X
-
- def testUpdatex86_64Tonoarch(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_noarch,])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_noarch,))
- def testUpdatex86_64TonoarchForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
- [p.update_noarch, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_noarch, p.requires_update))
-
- def testUpdatex86_64Toi386(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_i386,])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386,))
- def testUpdatex86_64Toi386ForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
- [p.update_i386, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386, p.requires_update))
-
- def testUpdatex86_64Tox86_64(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_x86_64,])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_x86_64,))
- def testUpdatex86_64Tox86_64ForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
- [p.update_x86_64, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_x86_64, p.requires_update))
-
- def testUpdatex86_64ToMultilib(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_i386, p.update_x86_64])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_x86_64,))
- def testUpdatex86_64ToMultilibForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
- [p.update_i386, p.update_x86_64, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_x86_64, p.requires_update))
-
- # multilib to X
-
- def testUpdateMultilibTonoarch(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_noarch])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_noarch,))
- def testUpdateMultilibTonoarchForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_noarch, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_noarch, p.requires_update))
-
- def testUpdateMultilibToi386(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386])
- self.assert_(res=='ok', msg)
- if new_behavior:
- self.assertResult((p.update_i386,)) # XXX is this right?
- else:
- self.assertResult((p.update_i386, p.installed_x86_64))
- def testUpdateMultilibToi386ForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.requires_update])
- self.assert_(res=='ok', msg)
- if new_behavior:
- self.assertResult((p.update_i386, p.requires_update)) # XXX is this right?
- else:
- self.assertResult((p.update_i386, p.installed_x86_64, p.requires_update))
-
- def testUpdateMultilibTox86_64(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_x86_64])
- self.assert_(res=='ok', msg)
- if new_behavior:
- self.assertResult((p.update_x86_64,)) # XXX is this right?
- else:
- self.assertResult((p.update_x86_64, p.installed_i386))
- def testUpdateMultilibTox86_64ForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_x86_64, p.requires_update])
- self.assert_(res=='ok', msg)
- if new_behavior:
- self.assertResult((p.update_x86_64, p.requires_update)) # XXX is this right?
- else:
- self.assertResult((p.update_x86_64, p.installed_i386, p.requires_update))
-
- def testUpdateMultilibToMultilib(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386, p.update_x86_64))
- def testUpdateMultilibToMultilibForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64, p.requires_update])
- self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
-
-
# Obsolete for conflict
class ComplicatedTests(OperationsTests):
@@ -240,7 +20,6 @@ class ComplicatedTests(OperationsTests):
def suite():
suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(SimpleUpdateTests))
suite.addTest(unittest.makeSuite(ComplicatedTests))
return suite
diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
new file mode 100644
index 0000000..d37ee7e
--- /dev/null
+++ b/test/simpleupdatetests.py
@@ -0,0 +1,228 @@
+from testbase import *
+
+class SimpleUpdateTests(OperationsTests):
+
+ @staticmethod
+ def buildPkgs(pkgs, *args):
+ # installed
+ pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
+ pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
+ pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
+ # updates
+ pkgs.update_i386 = FakePackage('zsh', '2', '1', '0', 'i386')
+ pkgs.update_x86_64 = FakePackage('zsh', '2', '1', '0', 'x86_64')
+ pkgs.update_noarch = FakePackage('zsh', '2', '1', '0', 'noarch')
+ # requires update
+ pkgs.requires_update = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
+ pkgs.requires_update.addRequires('zsh', 'EQ', ('0', '2', '1'))
+
+ # noarch to X
+
+ def testUpdatenoarchTonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_noarch,])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_noarch,))
+ def testUpdatenoarchTonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_noarch, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_noarch, p.requires_update))
+
+ def testUpdatenoarchToi386(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386,])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_i386,))
+ def testUpdatenoarchToi386ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_i386, p.requires_update))
+
+ def testUpdatenoarchTox86_64(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_x86_64,])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_x86_64,))
+ def testUpdatenoarchTox86_64ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_x86_64, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_x86_64, p.requires_update))
+
+ def testUpdatenoarchToMultilib(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386, p.update_x86_64])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.update_x86_64,), (p.update_i386,)) # ?
+ else:
+ self.assertResult((p.update_i386, p.update_x86_64))
+ def testUpdatenoarchToMultilibForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.update_x86_64, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_x86_64, p.requires_update), (p.update_i386,))
+
+ # i386 to X
+
+ def testUpdatei386Tonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_noarch])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_noarch,))
+ def testUpdatei386TonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_noarch, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_noarch, p.requires_update))
+
+ def testUpdatei386Toi386(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_i386,))
+ def testUpdatei386Toi386ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_i386, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_i386, p.requires_update))
+
+ def testUpdatei386Tox86_64(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_x86_64,))
+ def testUpdatei386Tox86_64ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_x86_64, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_x86_64, p.requires_update))
+
+ def testUpdatei386ToMultilib(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386, p.update_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_i386,))
+ def testUpdatei386ToMultilibForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_i386, p.update_x86_64, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_i386, p.requires_update))
+
+ # x86_64 to X
+
+ def testUpdatex86_64Tonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_noarch,])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_noarch,))
+ def testUpdatex86_64TonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
+ [p.update_noarch, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_noarch, p.requires_update))
+
+ def testUpdatex86_64Toi386(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_i386,])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_i386,))
+ def testUpdatex86_64Toi386ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
+ [p.update_i386, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_i386, p.requires_update))
+
+ def testUpdatex86_64Tox86_64(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_x86_64,])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_x86_64,))
+ def testUpdatex86_64Tox86_64ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
+ [p.update_x86_64, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_x86_64, p.requires_update))
+
+ def testUpdatex86_64ToMultilib(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_i386, p.update_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_x86_64,))
+ def testUpdatex86_64ToMultilibForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
+ [p.update_i386, p.update_x86_64, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_x86_64, p.requires_update))
+
+ # multilib to X
+
+ def testUpdateMultilibTonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_noarch])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_noarch,))
+ def testUpdateMultilibTonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_noarch, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_noarch, p.requires_update))
+
+ def testUpdateMultilibToi386(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.update_i386,)) # XXX is this right?
+ else:
+ self.assertResult((p.update_i386, p.installed_x86_64))
+ def testUpdateMultilibToi386ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.requires_update])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.update_i386, p.requires_update)) # XXX is this right?
+ else:
+ self.assertResult((p.update_i386, p.installed_x86_64, p.requires_update))
+
+ def testUpdateMultilibTox86_64(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_x86_64])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.update_x86_64,)) # XXX is this right?
+ else:
+ self.assertResult((p.update_x86_64, p.installed_i386))
+ def testUpdateMultilibTox86_64ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_x86_64, p.requires_update])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.update_x86_64, p.requires_update)) # XXX is this right?
+ else:
+ self.assertResult((p.update_x86_64, p.installed_i386, p.requires_update))
+
+ def testUpdateMultilibToMultilib(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_i386, p.update_x86_64))
+ def testUpdateMultilibToMultilibForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64, p.requires_update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(SimpleUpdateTests))
+ return suite
+
+if __name__ == "__main__":
+ unittest.main(defaultTest="suite")
commit 3522739a4a5a2d5f8169dee29b9225b2cd14306b
Author: Florian Festi <ffesti at redhat.com>
Date: Mon Nov 5 16:06:49 2007 +0100
Move SimpleObsoletesTests into an own module
Complete the coverage to all noarch, i386, x86_64, i386+x86_64 combinations
diff --git a/test/operationstests.py b/test/operationstests.py
index c3658a7..3bab8a4 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -1,5 +1,5 @@
from testbase import *
-
+from simpleobsoletestests import SimpleObsoletesTests
class SimpleUpdateTests(OperationsTests):
@@ -220,108 +220,13 @@ class SimpleUpdateTests(OperationsTests):
self.assert_(res=='ok', msg)
self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
-class SimpleObsoleteTests(OperationsTests):
-
- @staticmethod
- def buildPkgs(pkgs, *args):
- # installed
- pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
- pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
- pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
- # obsoletes
- pkgs.obsoletes_i386 = FakePackage('zsh-ng', '0.3', '1', '0', 'i386')
- pkgs.obsoletes_i386.addObsoletes('zsh', None, (None, None, None))
- pkgs.obsoletes_i386.addProvides('zzz')
- pkgs.obsoletes_x86_64 = FakePackage('zsh-ng', '0.3', '1', '0', 'x86_64')
- pkgs.obsoletes_x86_64.addObsoletes('zsh', None, (None, None, None))
- pkgs.obsoletes_x86_64.addProvides('zzz')
- pkgs.obsoletes_noarch = FakePackage('zsh-ng', '0.3', '1', '0', 'noarch')
- pkgs.obsoletes_noarch.addObsoletes('zsh', None, (None, None, None))
- pkgs.obsoletes_noarch.addProvides('zzz')
- # requires obsoletes
- pkgs.requires_obsoletes = FakePackage('superzippy', '3.5', '3', '0', 'noarch')
- pkgs.requires_obsoletes.addRequires('zzz')
-
-
- def testObsoletenoarchToMultiarch(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_i386, p.obsoletes_x86_64])
- self.assert_(res=='ok', msg)
- if new_behavior:
- self.assertResult((p.obsoletes_x86_64,), (p.obsoletes_i386,))
- else:
- self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
- def testObsoletenoarchToMultiarchForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
- [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
- self.assert_(res=='ok', msg)
- self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes), (p.obsoletes_i386,))
- def testObsoletenoarchToMultiarchForDependencyFix(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_noarch, p.obsoletes_x86_64, p.requires_obsoletes], [p.obsoletes_i386, p.obsoletes_x86_64])
- self.assert_(res==0, msg)
- #self.assertResult((p.obsoletes_x86_64,)) # yes, this would be nice - but also wrong
- self.assertResult((p.installed_noarch, p.obsoletes_x86_64, p.requires_obsoletes))
-
- def testObsoletei386ToMultiarch(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64])
- self.assert_(res=='ok', msg)
- self.assertResult((p.obsoletes_i386,))
- def testObsoletei386ToMultiarchForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
- self.assert_(res=='ok', msg)
- self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
- def testObsoletei386ToMultiarchForDependencyFix(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386, p.obsoletes_x86_64, p.requires_obsoletes], [p.obsoletes_i386, p.obsoletes_x86_64])
- self.assert_(res==0, msg)
- #self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes)) # yes, this would be nice - but also wrong
- self.assertResult((p.installed_i386, p.obsoletes_x86_64, p.requires_obsoletes))
-
- def testObsoletex86_64ToMultiarch(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
- self.assert_(res=='ok', msg)
- self.assertResult((p.obsoletes_x86_64,))
- def testObsoletex86_64ToMultiarchForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'],
- [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
- self.assert_(res=='ok', msg)
- self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
-
- def testObsoleteMultiarchToMultiarch(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
- self.assert_(res=='ok', msg)
- self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
- def testObsoleteMultiarchToMultiarchForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'],
- [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
- self.assert_(res=='ok', msg)
- self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
-
- def testObsoleteMultiarchTonoarch(self):
- p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch])
- self.assert_(res=='ok', msg)
- self.assertResult((p.obsoletes_noarch,))
- def testObsoleteMultiarchTonoarchForDependency(self):
- p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch, p.requires_obsoletes])
- self.assert_(res=='ok', msg)
- self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
# Obsolete for conflict
class ComplicatedTests(OperationsTests):
@staticmethod
def buildPkgs(pkgs, *args):
- SimpleObsoleteTests.buildPkgs(pkgs)
+ SimpleObsoletesTests.buildPkgs(pkgs)
# conflicts
pkgs.conflicts = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
pkgs.conflicts.addConflicts('zsh', 'EQ', ('0', '1', '1'))
@@ -336,7 +241,6 @@ class ComplicatedTests(OperationsTests):
def suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(SimpleUpdateTests))
- suite.addTest(unittest.makeSuite(SimpleObsoleteTests))
suite.addTest(unittest.makeSuite(ComplicatedTests))
return suite
diff --git a/test/simpleobsoletestests.py b/test/simpleobsoletestests.py
new file mode 100644
index 0000000..07d9e88
--- /dev/null
+++ b/test/simpleobsoletestests.py
@@ -0,0 +1,226 @@
+from testbase import *
+
+class SimpleObsoletesTests(OperationsTests):
+
+ @staticmethod
+ def buildPkgs(pkgs, *args):
+ # installed
+ pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
+ pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
+ pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
+ # obsoletes
+ pkgs.obsoletes_i386 = FakePackage('zsh-ng', '0.3', '1', '0', 'i386')
+ pkgs.obsoletes_i386.addObsoletes('zsh', None, (None, None, None))
+ pkgs.obsoletes_i386.addProvides('zzz')
+ pkgs.obsoletes_x86_64 = FakePackage('zsh-ng', '0.3', '1', '0', 'x86_64')
+ pkgs.obsoletes_x86_64.addObsoletes('zsh', None, (None, None, None))
+ pkgs.obsoletes_x86_64.addProvides('zzz')
+ pkgs.obsoletes_noarch = FakePackage('zsh-ng', '0.3', '1', '0', 'noarch')
+ pkgs.obsoletes_noarch.addObsoletes('zsh', None, (None, None, None))
+ pkgs.obsoletes_noarch.addProvides('zzz')
+ # requires obsoletes
+ pkgs.requires_obsoletes = FakePackage('superzippy', '3.5', '3', '0', 'noarch')
+ pkgs.requires_obsoletes.addRequires('zzz')
+
+ # noarch to X
+
+ def testObsoletenoarchTonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_noarch])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_noarch,))
+ def testObsoletenoarchTonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
+ [p.obsoletes_noarch, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
+
+ def testObsoletenoarchToi386(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_i386])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386,))
+ def testObsoletenoarchToi386ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
+ [p.obsoletes_i386, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
+
+ def testObsoletenoarchTox86_64(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64,))
+ def testObsoletenoarchTox86_64ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
+ [p.obsoletes_x86_64, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+
+ def testObsoletenoarchToMultiarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_i386, p.obsoletes_x86_64])
+ self.assert_(res=='ok', msg)
+ if new_behavior:
+ self.assertResult((p.obsoletes_x86_64,), (p.obsoletes_i386,))
+ else:
+ self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
+ def testObsoletenoarchToMultiarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
+ [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes), (p.obsoletes_i386,))
+
+ # i386 to X
+
+ def testObsoletei386Tonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_noarch])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_noarch,))
+ def testObsoletei386TonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_noarch, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
+
+ def testObsoletei386Toi386(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_i386])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386,))
+ def testObsoletei386Toi386ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_i386, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
+
+ def testObsoletei386Tox86_64(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64,))
+ def testObsoletei386Tox86_64ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_x86_64, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+
+
+ def testObsoletei386ToMultiarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386,))
+ def testObsoletei386ToMultiarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
+
+ # x86_64 to X
+
+ def testObsoletex86_64Tonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_noarch])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_noarch,))
+ def testObsoletex86_64TonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_x86_64], [p.obsoletes_noarch, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
+
+ def testObsoletex86_64Toi386(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_i386])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386,))
+ def testObsoletex86_64Toi386ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_x86_64], [p.obsoletes_i386, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
+
+ def testObsoletex86_64Tox86_64(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64,))
+ def testObsoletex86_64Tox86_64ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_x86_64], [p.obsoletes_x86_64, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+
+ def testObsoletex86_64ToMultiarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64,))
+ def testObsoletex86_64ToMultiarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'],
+ [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+
+ # multiarch to X
+
+ def testObsoleteMultiarchTonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_noarch,))
+ def testObsoleteMultiarchTonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
+
+ def testObsoleteMultiarchToi386(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386,))
+ def testObsoleteMultiarchToi386ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
+
+ def testObsoleteMultiarchTox86_64(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64,))
+ def testObsoleteMultiarchTox86_64ForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_x86_64, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+
+ def testObsoleteMultiarchToMultiarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
+ def testObsoleteMultiarchToMultiarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'],
+ [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(SimpleObsoletesTests))
+ return suite
+
+if __name__ == "__main__":
+ unittest.main(defaultTest="suite")
+
commit 025c8a035385844627ae36ff05b3b91327057a9b
Author: Florian Festi <ffesti at redhat.com>
Date: Mon Nov 5 15:59:45 2007 +0100
Read test modules from file systeRead test modules from file systemm
diff --git a/test/alltests.py b/test/alltests.py
index a0911db..6733a20 100644
--- a/test/alltests.py
+++ b/test/alltests.py
@@ -1,17 +1,24 @@
import unittest
import testbase
-
-import depsolvetests
-import packagetests
-import operationstests
+from glob import glob
+import os.path
def suite():
+ files = glob(os.path.join(os.path.dirname(__file__), '*.py'))
+ modules = [os.path.basename(f)[:-3] for f in files]
+ suites = []
+
+ print "Test modules:"
+ for m in modules:
+ if m in ('alltests', 'testbase'):
+ continue
+ module = __import__(m)
+ if hasattr(module, 'suite'):
+ print "\t%s" % m
+ suites.append(module.suite())
+
# Append all test suites here:
- return unittest.TestSuite((
- depsolvetests.suite(),
- operationstests.suite(),
- packagetests.suite(),
- ))
+ return unittest.TestSuite(suites)
if __name__ == "__main__":
unittest.main(defaultTest="suite")
commit bd6664a6aaa06b3bec91d6ff0cae7b287193a2dd
Author: Florian Festi <ffesti at redhat.com>
Date: Mon Nov 12 17:48:21 2007 +0100
Do arch checks for versioned obsoletes, too
Reduce duplicated code in doObsoletes
diff --git a/rpmUtils/updates.py b/rpmUtils/updates.py
index 861037f..94d8aa1 100644
--- a/rpmUtils/updates.py
+++ b/rpmUtils/updates.py
@@ -207,9 +207,11 @@ class Updates:
for pkgtup in self.rawobsoletes.keys():
(name, arch, epoch, ver, rel) = pkgtup
for (obs_n, flag, (obs_e, obs_v, obs_r)) in self.rawobsoletes[(pkgtup)]:
- if flag in [None, 0]: # unversioned obsolete
- if self.installdict.has_key((obs_n, None)):
- for (rpm_a, rpm_e, rpm_v, rpm_r) in self.installdict[(obs_n, None)]:
+ if self.installdict.has_key((obs_n, None)):
+ for (rpm_a, rpm_e, rpm_v, rpm_r) in self.installdict[(obs_n, None)]:
+ if flag in [None, 0] or \
+ rpmUtils.miscutils.rangeCheck((obs_n, flag, (obs_e, obs_v, obs_r)),
+ (obs_n, rpm_a, rpm_e, rpm_v, rpm_r)):
# make sure the obsoleting pkg is not already installed
willInstall = 1
if self.installdict.has_key((name, None)):
@@ -225,27 +227,6 @@ class Updates:
if not obsdict.has_key(pkgtup):
obsdict[pkgtup] = []
obsdict[pkgtup].append((obs_n, rpm_a, rpm_e, rpm_v, rpm_r))
-
- else: # versioned obsolete
- if self.installdict.has_key((obs_n, None)):
- for (rpm_a, rpm_e, rpm_v, rpm_r) in self.installdict[(obs_n, None)]:
- if rpmUtils.miscutils.rangeCheck((obs_n, flag, (obs_e, \
- obs_v, obs_r)), (obs_n,\
- rpm_a, rpm_e, rpm_v, rpm_r)):
- # make sure the obsoleting pkg is not already installed
- willInstall = 1
- if self.installdict.has_key((name, None)):
- for (ins_a, ins_e, ins_v, ins_r) in self.installdict[(name, None)]:
- pkgver = (epoch, ver, rel)
- installedver = (ins_e, ins_v, ins_r)
- if self.returnNewest((pkgver, installedver)) == installedver:
- willInstall = 0
- break
- if willInstall:
- if not obsdict.has_key(pkgtup):
- obsdict[pkgtup] = []
- obsdict[pkgtup].append((obs_n, rpm_a, rpm_e, rpm_v, rpm_r))
-
self.obsoletes = obsdict
self.makeObsoletedDict()
More information about the Yum-cvs-commits
mailing list