[yum-cvs] 25 commits - Makefile cli.py test/alltests.py test/depsolvetests.py test/operationstests.py test/packagetests.py test/settestpath.py test/testbase.py yum/__init__.py yum/depsolve.py yum/packageSack.py yum/rpmsack.py yum/sqlitesack.py
James Bowes
jbowes at linux.duke.edu
Fri Nov 2 18:44:07 UTC 2007
Makefile | 3
cli.py | 4
test/alltests.py | 5
test/depsolvetests.py | 413 ++++++++++++++++++++----------------------------
test/operationstests.py | 345 ++++++++++++++++++++++++++++++++++++++++
test/packagetests.py | 2
test/settestpath.py | 4
test/testbase.py | 233 +++++++++++++++++++++++++++
yum/__init__.py | 5
yum/depsolve.py | 6
yum/packageSack.py | 47 ++++-
yum/rpmsack.py | 12 -
yum/sqlitesack.py | 5
13 files changed, 816 insertions(+), 268 deletions(-)
New commits:
commit edbdf5ee813cd329f3272d0902b220c1312d3a07
Author: Florian Festi <ffesti at redhat.com>
Date: Fri Nov 2 17:04:59 2007 +0100
fix copy/paste errors
diff --git a/test/operationstests.py b/test/operationstests.py
index 1fe43ce..c3658a7 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -24,7 +24,7 @@ class SimpleUpdateTests(OperationsTests):
res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_noarch,])
self.assert_(res=='ok', msg)
self.assertResult((p.update_noarch,))
- def testUpdatenoarchToMultilibForDependency(self):
+ 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)
@@ -35,7 +35,7 @@ class SimpleUpdateTests(OperationsTests):
res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386,])
self.assert_(res=='ok', msg)
self.assertResult((p.update_i386,))
- def testUpdatenoarchToMultilibForDependency(self):
+ 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)
@@ -46,7 +46,7 @@ class SimpleUpdateTests(OperationsTests):
res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_x86_64,])
self.assert_(res=='ok', msg)
self.assertResult((p.update_x86_64,))
- def testUpdatenoarchToMultilibForDependency(self):
+ 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)
@@ -84,7 +84,7 @@ class SimpleUpdateTests(OperationsTests):
res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386])
self.assert_(res=='ok', msg)
self.assertResult((p.update_i386,))
- def testUpdatei386TonoarchForDependency(self):
+ 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)
@@ -208,6 +208,7 @@ class SimpleUpdateTests(OperationsTests):
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])
commit 562b9e108ce172b3b3956668316c81c642c2ae3d
Author: Florian Festi <ffesti at redhat.com>
Date: Fri Nov 2 16:03:19 2007 +0100
Make update tests complete
diff --git a/test/operationstests.py b/test/operationstests.py
index 441a126..1fe43ce 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -17,44 +17,56 @@ class SimpleUpdateTests(OperationsTests):
pkgs.requires_update = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
pkgs.requires_update.addRequires('zsh', 'EQ', ('0', '2', '1'))
- def testUpdatei386ToMultilib(self):
+ # noarch to X
+
+ def testUpdatenoarchTonoarch(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386, p.update_x86_64])
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_noarch,])
self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386,))
- def testUpdatei386ToMultilibForDependency(self):
+ self.assertResult((p.update_noarch,))
+ def testUpdatenoarchToMultilibForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_i386, p.update_x86_64, p.requires_update])
+ 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_i386, p.requires_update))
- def testUpdatei386ToMultilibForDependencyFix(self):
+ 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 testUpdatenoarchToMultilibForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
+ 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.update_x86_64, p.requires_update))
+ self.assertResult((p.update_i386, p.requires_update))
- def testUpdatex86_64ToMultilib(self):
+ def testUpdatenoarchTox86_64(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_i386, p.update_x86_64])
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_x86_64,])
self.assert_(res=='ok', msg)
self.assertResult((p.update_x86_64,))
- def testUpdatex86_64ToMultilibForDependency(self):
+ def testUpdatenoarchToMultilibForDependency(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])
+ 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 testUpdateMultilibToMultilib(self):
+ def testUpdatenoarchToMultilib(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64])
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386, p.update_x86_64])
self.assert_(res=='ok', msg)
- self.assertResult((p.update_i386, p.update_x86_64))
- def testUpdateMultilibToMultilibForDependency(self):
+ 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_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64, p.requires_update])
+ 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_i386, p.update_x86_64, p.requires_update))
+ self.assertResult((p.update_x86_64, p.requires_update), (p.update_i386,))
+
+ # i386 to X
def testUpdatei386Tonoarch(self):
p = self.pkgs
@@ -67,6 +79,91 @@ class SimpleUpdateTests(OperationsTests):
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 testUpdatei386TonoarchForDependency(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])
@@ -78,27 +175,49 @@ class SimpleUpdateTests(OperationsTests):
self.assert_(res=='ok', msg)
self.assertResult((p.update_noarch, p.requires_update))
- def testUpdatenoarchToMultilib(self):
+ def testUpdateMultilibToi386(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386, p.update_x86_64])
+ 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_x86_64,), (p.update_i386,)) # ?
+ self.assertResult((p.update_i386,)) # XXX is this right?
else:
- self.assertResult((p.update_i386, p.update_x86_64))
- def testUpdatenoarchToMultilibForDependency(self):
+ self.assertResult((p.update_i386, p.installed_x86_64))
+ def testUpdateMultilibToi386ForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.update_x86_64, p.requires_update])
+ 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)
- self.assertResult((p.update_x86_64, p.requires_update), (p.update_i386,))
- def testUpdatenoarchToMultilibForDependencyFix(self):
+ 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(['update'], [p.installed_noarch, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
+ 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_i386, p.update_x86_64, p.requires_update)) # ?
+ self.assertResult((p.update_x86_64, p.requires_update)) # XXX is this right?
else:
- self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
+ 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))
class SimpleObsoleteTests(OperationsTests):
@@ -133,7 +252,7 @@ class SimpleObsoleteTests(OperationsTests):
self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
def testObsoletenoarchToMultiarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
+ 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,))
@@ -168,7 +287,7 @@ class SimpleObsoleteTests(OperationsTests):
self.assertResult((p.obsoletes_x86_64,))
def testObsoletex86_64ToMultiarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'],
+ 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))
@@ -180,7 +299,7 @@ class SimpleObsoleteTests(OperationsTests):
self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
def testObsoleteMultiarchToMultiarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'],
+ 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))
commit 8e2a5f5410c9856fccd419757faf7f21560db8df
Author: Florian Festi <ffesti at redhat.com>
Date: Fri Nov 2 10:36:48 2007 +0100
Change test cases to check for the new - now fixed - behavior of yum
diff --git a/test/operationstests.py b/test/operationstests.py
index c593cbd..441a126 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -26,10 +26,7 @@ class SimpleUpdateTests(OperationsTests):
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)
- if new_behavior:
- self.assertResult((p.update_i386, p.requires_update))
- else:
- self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
+ self.assertResult((p.update_i386, p.requires_update))
def testUpdatei386ToMultilibForDependencyFix(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
@@ -57,10 +54,7 @@ class SimpleUpdateTests(OperationsTests):
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)
- if new_behavior:
- self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
- else:
- self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
+ self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
def testUpdatei386Tonoarch(self):
p = self.pkgs
@@ -71,27 +65,18 @@ class SimpleUpdateTests(OperationsTests):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_noarch, p.requires_update])
self.assert_(res=='ok', msg)
- if new_behavior:
- self.assertResult((p.update_noarch, p.requires_update))
- else:
- self.assertResult((p.installed_i386, p.update_noarch, p.requires_update))
+ self.assertResult((p.update_noarch, p.requires_update))
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)
- if new_behavior:
- self.assertResult((p.update_noarch,))
- else:
- self.assertResult((p.update_noarch, p.installed_x86_64))
+ 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)
- if new_behavior:
- self.assertResult((p.update_noarch, p.requires_update))
- else:
- self.assertResult((p.installed_i386, p.installed_x86_64, p.update_noarch, p.requires_update))
+ self.assertResult((p.update_noarch, p.requires_update))
def testUpdatenoarchToMultilib(self):
p = self.pkgs
@@ -105,10 +90,7 @@ class SimpleUpdateTests(OperationsTests):
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)
- if new_behavior:
- self.assertResult((p.update_x86_64, p.requires_update), (p.update_i386,))
- else:
- self.assertResult((p.installed_noarch, p.update_x86_64, p.requires_update))
+ self.assertResult((p.update_x86_64, p.requires_update), (p.update_i386,))
def testUpdatenoarchToMultilibForDependencyFix(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_noarch, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
@@ -154,10 +136,7 @@ class SimpleObsoleteTests(OperationsTests):
res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
[p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
self.assert_(res=='ok', msg)
- if new_behavior:
- self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes), (p.obsoletes_i386,))
- else:
- self.assertResult((p.installed_noarch, p.obsoletes_x86_64, p.requires_obsoletes))
+ 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])
@@ -174,10 +153,7 @@ class SimpleObsoleteTests(OperationsTests):
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)
- if new_behavior:
- self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
- else:
- self.assertResult((p.installed_i386, p.obsoletes_x86_64, p.requires_obsoletes))
+ 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])
@@ -195,10 +171,7 @@ class SimpleObsoleteTests(OperationsTests):
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)
- if new_behavior:
- self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
- else:
- self.assertResult((p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
def testObsoleteMultiarchToMultiarch(self):
p = self.pkgs
@@ -210,10 +183,7 @@ class SimpleObsoleteTests(OperationsTests):
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)
- if new_behavior:
- self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
- else:
- self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
+ self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
def testObsoleteMultiarchTonoarch(self):
p = self.pkgs
@@ -224,10 +194,7 @@ class SimpleObsoleteTests(OperationsTests):
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)
- if new_behavior:
- self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
- else:
- self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_noarch, p.requires_obsoletes))
+ self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
# Obsolete for conflict
class ComplicatedTests(OperationsTests):
commit a6467e72b044604ef8c6e7a5308033ec681249c5
Author: Florian Festi <ffesti at redhat.com>
Date: Wed Oct 31 15:16:20 2007 +0100
Further depsolving test cleanups:
* remove TestingDepsolve class - do initialization in resolveCode
* remove build_depsolver() - do initialization in resolveCode
* set po.repoid po.repo.id in resolveCode
* remove FakeInstPkg - directly use FakePackage()
Set po.repoid and po.repo.id = "TestRepository" for available pkgs for operations tests
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 7b61070..22efc44 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -157,7 +157,7 @@ class DepsolveTests(DepsolveTests):
po.addRequires('zip', 'LT', ('2', '1.3', '4'))
self.tsInfo.addInstall(po)
- ipo = self.FakeInstPkg('zip', '1.3', '4', None, 'i386')
+ ipo = FakePackage('zip', '1.3', '4', None, 'i386')
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', *self.resolveCode())
@@ -329,7 +329,7 @@ class DepsolveTests(DepsolveTests):
self.assertResult((po, xpo))
def testUpdateSinglePackage(self):
- ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
+ ipo = FakePackage('zsh', '1', '1', None, 'i386')
self.rpmdb.addPackage(ipo)
po = FakePackage('zsh', '1', '3', None, 'i386')
@@ -373,7 +373,7 @@ class DepsolveTests(DepsolveTests):
self.assertResult((po, installedpo, updatepo2))
def testUpdateSinglePackageNewRequires(self):
- ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
+ ipo = FakePackage('zsh', '1', '1', None, 'i386')
self.rpmdb.addPackage(ipo)
po = FakePackage('zsh', '1', '3', None, 'i386')
@@ -387,7 +387,7 @@ class DepsolveTests(DepsolveTests):
self.assertResult((po, xpo))
def testUpdateSinglePackageOldRequires(self):
- ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
+ ipo = FakePackage('zsh', '1', '1', None, 'i386')
ipo.addRequires('zip', None, (None, None, None))
self.rpmdb.addPackage(ipo)
@@ -402,7 +402,7 @@ class DepsolveTests(DepsolveTests):
self.assertResult((po, xpo))
def testUpdateSinglePackageOldRequiresGone(self):
- ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
+ ipo = FakePackage('zsh', '1', '1', None, 'i386')
ipo.addRequires('zip', None, (None, None, None))
self.rpmdb.addPackage(ipo)
@@ -416,7 +416,7 @@ class DepsolveTests(DepsolveTests):
self.assertResult((po, xpo))
def testUpdateSinglePackageObsoletesOldRequirement(self):
- ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
+ ipo = FakePackage('zsh', '1', '1', None, 'i386')
ipo.addRequires('zip', None, (None, None, None))
self.rpmdb.addPackage(ipo)
diff --git a/test/testbase.py b/test/testbase.py
index 5f05996..33fa803 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -71,34 +71,6 @@ class FakePackage(packages.YumAvailablePackage):
def addFile(self, name, ftype='file'):
self.files[ftype].append(name)
-
-class TestingDepsolve(YumBase):
-
- def __init__(self, tsInfo, rpmdb, pkgSack):
- YumBase.__init__(self)
-
- self.conf = FakeConf()
- self.tsInfo = tsInfo
- self._tsInfo = tsInfo
- self.rpmdb = rpmdb
- self.pkgSack = pkgSack
-
- def getInstalledPackageObject(self, pkgtup):
- return self.rpmdb.searchNevra(pkgtup[0], pkgtup[2], pkgtup[3],
- pkgtup[4], pkgtup[1])[0]
-
-
-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 _Container(object):
pass
@@ -190,12 +162,26 @@ class DepsolveTests(_DepsolveTestsBase):
self.rpmdb = 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)
+ # XXX this side-affect is hacky:
+ self.tsInfo.setDatabases(self.rpmdb, self.xsack)
def resolveCode(self):
- solver = build_depsolver(self.tsInfo, self.rpmdb, self.xsack)
+ solver = YumBase()
+ solver.conf = FakeConf()
+ solver.tsInfo = solver._tsInfo = self.tsInfo
+ solver.rpmdb = self.rpmdb
+ solver.pkgSack = self.xsack
+
+ for po in self.rpmdb:
+ po.repoid = po.repo.id = "installed"
+ for po in self.xsack:
+ po.repoid = po.repo.id = "TestRepository"
+ for txmbr in self.tsInfo:
+ if txmbr.ts_state in ('u', 'i'):
+ txmbr.po.repoid = txmbr.po.repo.id = "TestRepository"
+ else:
+ txmbr.po.repoid = txmbr.po.repo.id = "installed"
+
result, msg = solver.resolveDeps()
return (self.res[result], msg)
@@ -234,6 +220,7 @@ class OperationsTests(_DepsolveTestsBase):
po.repoid = po.repo.id = "installed"
self.depsolver.rpmdb.addPackage(po)
for po in available:
+ po.repoid = po.repo.id = "TestRepository"
self.depsolver._pkgSack.addPackage(po)
self.depsolver.basecmd = args[0]
commit f25f72993890e58ea961460b48b2d4f94d313b70
Author: Florian Festi <ffesti at redhat.com>
Date: Thu Oct 25 14:42:36 2007 +0200
Fix double complaints in assertResult
Also output the source code of the failed test case
diff --git a/test/testbase.py b/test/testbase.py
index a779a08..5f05996 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -16,6 +16,7 @@ from yum import packages
from yum import packageSack
from yum.constants import TS_INSTALL_STATES, TS_REMOVE_STATES
from cli import YumBaseCli
+import inspect
#############################################################
### Helper classes ##########################################
@@ -131,7 +132,7 @@ class _DepsolveTestsBase(unittest.TestCase):
present if they are in the rpmdb and are not REMOVEd or they
are INSTALLed.
"""
- errors = ["assertResult:\n"]
+ errors = ["Unexpected result after depsolving: \n\n"]
pkgs = set(pkgs)
optional_pkgs = set(optional_pkgs)
installed = set()
@@ -140,22 +141,26 @@ class _DepsolveTestsBase(unittest.TestCase):
# got removed
if self.tsInfo.getMembersWithState(pkg.pkgtup, TS_REMOVE_STATES):
if pkg in pkgs:
- errors.append("Package %s got removed!\n" % pkg)
+ errors.append("Package %s was removed!\n" % pkg)
else: # still installed
- installed.add(pkg)
if pkg not in pkgs and pkg not in optional_pkgs:
- errors.append("Package %s didn't got removed!\n" % pkg)
+ errors.append("Package %s was not removed!\n" % pkg)
+ installed.add(pkg)
for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
installed.add(txmbr.po)
if txmbr.po not in pkgs and txmbr.po not in optional_pkgs:
- errors.append("Package %s got installed!\n" % txmbr.po)
+ errors.append("Package %s was installed!\n" % txmbr.po)
for pkg in pkgs - installed:
- errors.append("Package %s didn't got installed!\n" % pkg)
+ errors.append("Package %s was not installed!\n" % pkg)
if len(errors) > 1:
+ errors.append("\nTest case was:\n\n")
+ errors.extend(inspect.getsource(inspect.stack()[1][0].f_code))
+ errors.append("\n")
self.fail("".join(errors))
+
#######################################################################
### Derive Tests from these classes or unittest.TestCase ##############
#######################################################################
commit 092b4555e2a5e54ec8d37b1d845ea492c9f009a3
Author: Florian Festi <ffesti at redhat.com>
Date: Thu Oct 25 13:27:22 2007 +0200
Refactor depsolving test infrastructure and move it to test/testbase.py
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index e639709..7b61070 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -1,139 +1,7 @@
import unittest
-import testbase
-
-from yum import YumBase
-from yum import transactioninfo
-from yum import packages
-from yum import packageSack
-from yum.constants import TS_INSTALL_STATES, TS_REMOVE_STATES
-
-class FakeConf(object):
-
- def __init__(self):
- self.installonlypkgs = []
- self.exclude = []
- self.debuglevel = 0
- self.obsoletes = True
- self.exactarch = False
- self.exactarchlist = []
- self.installroot = '/'
- self.tsflags = []
- self.installonly_limit = 0
-
-class FakeRepo(object):
-
- def __init__(self, id=None):
- self.id = id
-
-class FakePackage(packages.YumAvailablePackage):
-
- def __init__(self, name, version, release, epoch, arch, repo=None):
- packages.PackageObject.__init__(self)
- packages.RpmBase.__init__(self)
-
- self.name = name
- self.version = version
- self.ver = version
- self.release = release
- self.rel = release
- self.epoch = epoch
- self.arch = arch
-
- self.prco['provides'].append((name, 'EQ', (epoch, version, release)))
-
- 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, flag=None, evr=(None, None, None)):
- self.prco['provides'].append((name, flag, evr))
- def addRequires(self, name, flag=None, evr=(None, None, None)):
- self.prco['requires'].append((name, flag, evr))
- def addConflicts(self, name, flag=None, evr=(None, None, None)):
- self.prco['conflicts'].append((name, flag, evr))
- def addObsoletes(self, name, flag=None, evr=(None, None, None)):
- self.prco['obsoletes'].append((name, flag, evr))
- def addFile(self, name, ftype='file'):
- self.files[ftype].append(name)
-
-
-class TestingDepsolve(YumBase):
-
- def __init__(self, tsInfo, rpmdb, pkgSack):
- YumBase.__init__(self)
-
- self.conf = FakeConf()
- self.tsInfo = tsInfo
- self._tsInfo = tsInfo
- self.rpmdb = rpmdb
- self.pkgSack = pkgSack
-
- def getInstalledPackageObject(self, pkgtup):
- return self.rpmdb.searchNevra(pkgtup[0], pkgtup[2], pkgtup[3],
- pkgtup[4], pkgtup[1])[0]
-
-
-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
- rpmdb = None
- def setUp(self):
- """ Called at the start of each test. """
- self.tsInfo = transactioninfo.TransactionData()
- self.rpmdb = 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):
- solver = build_depsolver(self.tsInfo, self.rpmdb, self.xsack)
- result = solver.resolveDeps()
- res = {0 : 'empty', 2 : 'ok', 1 : 'err'}
- return (res[result[0]], result[1])
-
- def assertResult(self, pkgs, optional_pkgs=[], check_multilib_versions=True):
- errors = ["assertResult:\n"]
- pkgs = set(pkgs)
- optional_pkgs = set(optional_pkgs)
- installed = set()
-
- for pkg in self.rpmdb:
- # got removed
- if self.tsInfo.getMembersWithState(pkg.pkgtup, TS_REMOVE_STATES):
- if pkg in pkgs:
- errors.append("Package %s got removed!\n" % pkg)
- else: # still installed
- installed.add(pkg)
- if pkg not in pkgs and pkg not in optional_pkgs:
- errors.append("Package %s didn't got removed!\n" % pkg)
-
- for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
- installed.add(txmbr.po)
- if txmbr.po not in pkgs and txmbr.po not in optional_pkgs:
- errors.append("Package %s got installed!\n" % txmbr.po)
- for pkg in pkgs - installed:
- errors.append("Package %s didn't got installed!\n" % pkg)
-
- if len(errors) > 1:
- self.fail("".join(errors))
+from testbase import *
+class DepsolveTests(DepsolveTests):
def testEmpty(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
self.tsInfo.addInstall(po)
@@ -577,7 +445,7 @@ class DepsolveTests(unittest.TestCase):
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
self.xsack.addPackage(updatepo)
- if testbase.new_behavior:
+ if new_behavior:
self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, updatepo))
else:
@@ -609,7 +477,7 @@ class DepsolveTests(unittest.TestCase):
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
self.xsack.addPackage(updatepo)
- if testbase.new_behavior:
+ if new_behavior:
self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, updatepo))
else:
diff --git a/test/operationstests.py b/test/operationstests.py
index d3fe9a0..c593cbd 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -1,141 +1,63 @@
-import unittest
-import testbase
+from testbase import *
-from depsolvetests import FakePackage, FakeRepo, FakeConf
-from yum.constants import TS_INSTALL_STATES, TS_REMOVE_STATES
-from cli import YumBaseCli
-from yum import packageSack
-class Container(object):
- pass
+class SimpleUpdateTests(OperationsTests):
-class OperationsTests(unittest.TestCase):
-
- def __init__(self, methodName='runTest'):
- unittest.TestCase.__init__(self, methodName)
- self.pkgs = Container()
+ @staticmethod
+ def buildPkgs(pkgs, *args):
# installed
- self.pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
- self.pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
- self.pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
+ 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
- self.pkgs.update_i386 = FakePackage('zsh', '2', '1', '0', 'i386')
- self.pkgs.update_x86_64 = FakePackage('zsh', '2', '1', '0', 'x86_64')
- self.pkgs.update_noarch = FakePackage('zsh', '2', '1', '0', 'noarch')
+ 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
- self.pkgs.requires_update = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
- self.pkgs.requires_update.addRequires('zsh', 'EQ', ('0', '2', '1'))
- # obsoletes
- self.pkgs.obsoletes_i386 = FakePackage('zsh-ng', '0.3', '1', '0', 'i386')
- self.pkgs.obsoletes_i386.addObsoletes('zsh', None, (None, None, None))
- self.pkgs.obsoletes_i386.addProvides('zzz')
- self.pkgs.obsoletes_x86_64 = FakePackage('zsh-ng', '0.3', '1', '0', 'x86_64')
- self.pkgs.obsoletes_x86_64.addObsoletes('zsh', None, (None, None, None))
- self.pkgs.obsoletes_x86_64.addProvides('zzz')
- self.pkgs.obsoletes_noarch = FakePackage('zsh-ng', '0.3', '1', '0', 'noarch')
- self.pkgs.obsoletes_noarch.addObsoletes('zsh', None, (None, None, None))
- self.pkgs.obsoletes_noarch.addProvides('zzz')
- # requires obsoletes
- self.pkgs.requires_obsoletes = FakePackage('superzippy', '3.5', '3', '0', 'noarch')
- self.pkgs.requires_obsoletes.addRequires('zzz')
- # conflicts
- self.pkgs.conflicts = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
- self.pkgs.conflicts.addConflicts('zsh', 'EQ', ('0', '1', '1'))
-
-
- def runOperation(self, args, installed=[], available=[]):
- depsolver = YumBaseCli()
- depsolver.rpmdb = packageSack.PackageSack()
- depsolver._pkgSack = packageSack.PackageSack()
- depsolver.repo = FakeRepo("installed")
- depsolver.conf = FakeConf()
- depsolver.doLoggingSetup(-1, -1)
- self.depsolver = depsolver
-
- for po in installed:
- po.repoid = po.repo.id = "installed"
- self.depsolver.rpmdb.addPackage(po)
- for po in available:
- self.depsolver._pkgSack.addPackage(po)
-
- self.depsolver.basecmd = args[0]
- self.depsolver.extcmds = args[1:]
- res, msg = self.depsolver.doCommands()
- if res!=2:
- return res, msg
- return self.depsolver.buildTransaction()
-
- def assertResult(self, pkgs, optional_pkgs=[], check_multilib_versions=True):
- errors = ["assertResult:\n"]
- pkgs = set(pkgs)
- optional_pkgs = set(optional_pkgs)
- installed = set()
-
- for pkg in self.depsolver.rpmdb:
- # got removed
- if self.depsolver.tsInfo.getMembersWithState(pkg.pkgtup, TS_REMOVE_STATES):
- if pkg in pkgs:
- errors.append("Package %s got removed!\n" % pkg)
- else: # still installed
- installed.add(pkg)
- if pkg not in pkgs and pkg not in optional_pkgs:
- errors.append("Package %s didn't got removed!\n" % pkg)
-
- for txmbr in self.depsolver.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
- installed.add(txmbr.po)
- if txmbr.po not in pkgs and txmbr.po not in optional_pkgs:
- errors.append("Package %s got installed!\n" % txmbr.po)
- for pkg in pkgs - installed:
- errors.append("Package %s didn't got installed!\n" % pkg)
-
- if len(errors) > 1:
- self.fail("".join(errors))
-
- #######################################################################
- ### Tests #############################################################
- #######################################################################
+ pkgs.requires_update = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
+ pkgs.requires_update.addRequires('zsh', 'EQ', ('0', '2', '1'))
def testUpdatei386ToMultilib(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386, p.update_x86_64])
- self.assert_(res==2, msg)
+ 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==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.update_i386, p.requires_update))
else:
self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
def testUpdatei386ToMultilibForDependencyFix(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
- self.assert_(res==2, msg)
+ self.assert_(res=='ok', msg)
self.assertResult((p.update_i386, 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==2, msg)
+ 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==2, msg)
+ self.assert_(res=='ok', msg)
self.assertResult((p.update_x86_64, 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==2, msg)
+ 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==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
else:
self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
@@ -143,13 +65,13 @@ class OperationsTests(unittest.TestCase):
def testUpdatei386Tonoarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_noarch])
- self.assert_(res==2, msg)
+ 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==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.update_noarch, p.requires_update))
else:
self.assertResult((p.installed_i386, p.update_noarch, p.requires_update))
@@ -157,16 +79,16 @@ class OperationsTests(unittest.TestCase):
def testUpdateMultilibTonoarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_noarch])
- self.assert_(res==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.update_noarch,))
else:
self.assertResult((p.update_noarch, p.installed_x86_64))
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==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.update_noarch, p.requires_update))
else:
self.assertResult((p.installed_i386, p.installed_x86_64, p.update_noarch, p.requires_update))
@@ -174,37 +96,56 @@ class OperationsTests(unittest.TestCase):
def testUpdatenoarchToMultilib(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386, p.update_x86_64])
- self.assert_(res==2, msg)
- if testbase.new_behavior:
+ 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==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.update_x86_64, p.requires_update), (p.update_i386,))
else:
self.assertResult((p.installed_noarch, p.update_x86_64, p.requires_update))
def testUpdatenoarchToMultilibForDependencyFix(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_noarch, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
- self.assert_(res==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.update_i386, p.update_x86_64, p.requires_update)) # ?
else:
self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
- ###################################################
- ### Obsoletes #################################
- ###################################################
+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==2, msg)
- if testbase.new_behavior:
+ 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))
@@ -212,8 +153,8 @@ class OperationsTests(unittest.TestCase):
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==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes), (p.obsoletes_i386,))
else:
self.assertResult((p.installed_noarch, p.obsoletes_x86_64, p.requires_obsoletes))
@@ -227,13 +168,13 @@ class OperationsTests(unittest.TestCase):
def testObsoletei386ToMultiarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64])
- self.assert_(res==2, msg)
+ 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==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
else:
self.assertResult((p.installed_i386, p.obsoletes_x86_64, p.requires_obsoletes))
@@ -247,14 +188,14 @@ class OperationsTests(unittest.TestCase):
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==2, msg)
+ 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==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
else:
self.assertResult((p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
@@ -262,14 +203,14 @@ class OperationsTests(unittest.TestCase):
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==2, msg)
+ 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==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
else:
self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
@@ -277,29 +218,39 @@ class OperationsTests(unittest.TestCase):
def testObsoleteMultiarchTonoarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch])
- self.assert_(res==2, msg)
+ 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==2, msg)
- if testbase.new_behavior:
+ self.assert_(res=='ok', msg)
+ if new_behavior:
self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
else:
self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_noarch, p.requires_obsoletes))
- # Obsolete for conflict
+# Obsolete for conflict
+class ComplicatedTests(OperationsTests):
+
+ @staticmethod
+ def buildPkgs(pkgs, *args):
+ SimpleObsoleteTests.buildPkgs(pkgs)
+ # conflicts
+ pkgs.conflicts = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
+ pkgs.conflicts.addConflicts('zsh', 'EQ', ('0', '1', '1'))
def testObsoleteForConflict(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'super-zippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.conflicts])
- if testbase.new_behavior:
- self.assert_(res==2, msg)
+ if new_behavior:
+ self.assert_(res=='ok', msg)
self.assertResult((p.obsoletes_i386, p.conflicts))
def suite():
suite = unittest.TestSuite()
- suite.addTest(unittest.makeSuite(OperationsTests))
+ suite.addTest(unittest.makeSuite(SimpleUpdateTests))
+ suite.addTest(unittest.makeSuite(SimpleObsoleteTests))
+ suite.addTest(unittest.makeSuite(ComplicatedTests))
return suite
if __name__ == "__main__":
diff --git a/test/testbase.py b/test/testbase.py
index e2faf7e..a779a08 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -1,4 +1,5 @@
import sys
+import unittest
# Adjust path so we can see the src modules running from branch as well
# as test dir:
@@ -8,3 +9,233 @@ sys.path.insert(0, './')
new_behavior = "--new_behavior" in sys.argv
sys.argv = filter("--new_behavior".__ne__, sys.argv)
+
+from yum import YumBase
+from yum import transactioninfo
+from yum import packages
+from yum import packageSack
+from yum.constants import TS_INSTALL_STATES, TS_REMOVE_STATES
+from cli import YumBaseCli
+
+#############################################################
+### Helper classes ##########################################
+#############################################################
+
+class FakeConf(object):
+
+ def __init__(self):
+ self.installonlypkgs = []
+ self.exclude = []
+ self.debuglevel = 0
+ self.obsoletes = True
+ self.exactarch = False
+ self.exactarchlist = []
+ self.installroot = '/'
+ self.tsflags = []
+ self.installonly_limit = 0
+
+class FakeRepo(object):
+
+ def __init__(self, id=None):
+ self.id = id
+
+class FakePackage(packages.YumAvailablePackage):
+
+ def __init__(self, name, version, release, epoch, arch, repo=None):
+ if repo is None:
+ repo = FakeRepo()
+ packages.YumAvailablePackage.__init__(self, repo)
+
+ self.name = name
+ self.version = version
+ self.ver = version
+ self.release = release
+ self.rel = release
+ self.epoch = epoch
+ self.arch = arch
+
+ self.prco['provides'].append((name, 'EQ', (epoch, version, release)))
+
+ # Just a unique integer
+ self.id = self.__hash__()
+
+ def addProvides(self, name, flag=None, evr=(None, None, None)):
+ self.prco['provides'].append((name, flag, evr))
+ def addRequires(self, name, flag=None, evr=(None, None, None)):
+ self.prco['requires'].append((name, flag, evr))
+ def addConflicts(self, name, flag=None, evr=(None, None, None)):
+ self.prco['conflicts'].append((name, flag, evr))
+ def addObsoletes(self, name, flag=None, evr=(None, None, None)):
+ self.prco['obsoletes'].append((name, flag, evr))
+ def addFile(self, name, ftype='file'):
+ self.files[ftype].append(name)
+
+
+class TestingDepsolve(YumBase):
+
+ def __init__(self, tsInfo, rpmdb, pkgSack):
+ YumBase.__init__(self)
+
+ self.conf = FakeConf()
+ self.tsInfo = tsInfo
+ self._tsInfo = tsInfo
+ self.rpmdb = rpmdb
+ self.pkgSack = pkgSack
+
+ def getInstalledPackageObject(self, pkgtup):
+ return self.rpmdb.searchNevra(pkgtup[0], pkgtup[2], pkgtup[3],
+ pkgtup[4], pkgtup[1])[0]
+
+
+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 _Container(object):
+ pass
+
+
+#######################################################################
+### Abstract super class for test cases ###############################
+#######################################################################
+
+class _DepsolveTestsBase(unittest.TestCase):
+
+ res = {0 : 'empty', 2 : 'ok', 1 : 'err'}
+
+ def __init__(self, methodName='runTest'):
+ unittest.TestCase.__init__(self, methodName)
+ self.pkgs = _Container()
+ self.buildPkgs(self.pkgs)
+
+ @staticmethod
+ def buildPkgs(pkgs, *args):
+ """Overload this staticmethod to create pkpgs that are used in several
+ test cases. It gets called from __init__ with self.pkgs as first parameter.
+ It is a staticmethod so you can call .buildPkgs() from other Tests to share
+ buildPkg code (inheritance doesn't work here, because we don't want to
+ inherit the test cases, too).
+ """
+ pass
+
+ def assertResult(self, pkgs, optional_pkgs=[]):
+ """Check if "system" contains the given pkgs. pkgs must be present,
+ optional_pkgs may be. Any other pkgs result in an error. Pkgs are
+ present if they are in the rpmdb and are not REMOVEd or they
+ are INSTALLed.
+ """
+ errors = ["assertResult:\n"]
+ pkgs = set(pkgs)
+ optional_pkgs = set(optional_pkgs)
+ installed = set()
+
+ for pkg in self.rpmdb:
+ # got removed
+ if self.tsInfo.getMembersWithState(pkg.pkgtup, TS_REMOVE_STATES):
+ if pkg in pkgs:
+ errors.append("Package %s got removed!\n" % pkg)
+ else: # still installed
+ installed.add(pkg)
+ if pkg not in pkgs and pkg not in optional_pkgs:
+ errors.append("Package %s didn't got removed!\n" % pkg)
+
+ for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
+ installed.add(txmbr.po)
+ if txmbr.po not in pkgs and txmbr.po not in optional_pkgs:
+ errors.append("Package %s got installed!\n" % txmbr.po)
+ for pkg in pkgs - installed:
+ errors.append("Package %s didn't got installed!\n" % pkg)
+
+ if len(errors) > 1:
+ self.fail("".join(errors))
+
+#######################################################################
+### Derive Tests from these classes or unittest.TestCase ##############
+#######################################################################
+
+class DepsolveTests(_DepsolveTestsBase):
+ """Run depsolver on an manually set up transaction.
+ You can add pkgs to self.rpmdb or self.tsInfo. See
+ yum/transactioninfo.py for details.
+ A typical test case looks like:
+
+ def testInstallPackageRequireInstalled(self):
+ po = FakePackage('zsh', '1', '1', None, 'i386')
+ po.addRequires('zip', 'EQ', (None, '1.3', '2'))
+ self.tsInfo.addInstall(po)
+
+ ipo = FakePackage('zip', '1.3', '2', None, 'i386')
+ self.rpmdb.addPackage(ipo)
+
+ result, msg = self.resolveCode()
+ self.assertEquals('ok', result, msg)
+ self.assertResult((po, ipo))
+ """
+
+ def setUp(self):
+ """ Called at the start of each test. """
+ self.tsInfo = transactioninfo.TransactionData()
+ self.rpmdb = 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):
+ solver = build_depsolver(self.tsInfo, self.rpmdb, self.xsack)
+ result, msg = solver.resolveDeps()
+ return (self.res[result], msg)
+
+class OperationsTests(_DepsolveTestsBase):
+ """Run a yum command (install, update, remove, ...) in a given set of installed
+ and available pkgs. Typical test case looks like:
+
+ def testUpdate(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.installed], [p.update])
+ self.assert_(res=='ok', msg)
+ self.assertResult((p.update,))
+
+ To avoid creating the same pkgs over and over again overload the staticmethod
+ buildPkgs. It gets called from __init__ with self.pkgs as first parameter.
+ As it is a static method you can call .buildPkgs() from other Tests to share
+ buildPkg code.
+ """
+
+ def runOperation(self, args, installed=[], available=[]):
+ """Sets up and runs the depsolver. args[0] must be a valid yum command
+ ("install", "update", ...). It might be followed by pkg names as on the
+ yum command line. The pkg objects in installed are added to self.rpmdb and
+ those in available to self.xsack which is the repository to resolve
+ requirements from.
+ """
+ depsolver = YumBaseCli()
+ self.rpmdb = depsolver.rpmdb = packageSack.PackageSack()
+ self.xsack = depsolver._pkgSack = packageSack.PackageSack()
+ self.repo = depsolver.repo = FakeRepo("installed")
+ depsolver.conf = FakeConf()
+ depsolver.doLoggingSetup(-1, -1)
+ self.depsolver = depsolver
+
+ for po in installed:
+ po.repoid = po.repo.id = "installed"
+ self.depsolver.rpmdb.addPackage(po)
+ for po in available:
+ self.depsolver._pkgSack.addPackage(po)
+
+ self.depsolver.basecmd = args[0]
+ self.depsolver.extcmds = args[1:]
+ res, msg = self.depsolver.doCommands()
+ self.tsInfo = depsolver.tsInfo
+ if res!=2:
+ return res, msg
+ res, msg = self.depsolver.buildTransaction()
+ return self.res[res], msg
commit 5a3b0127690262e2a8d55bf150d354fae0cc927f
Author: Florian Festi <ffesti at redhat.com>
Date: Tue Oct 23 13:30:42 2007 +0200
Fix test names that got broken by query/replace
Make some test cases a bit more tolerant
diff --git a/test/operationstests.py b/test/operationstests.py
index 52291b6..d3fe9a0 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -140,12 +140,12 @@ class OperationsTests(unittest.TestCase):
else:
self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
- def testUpdatei386Tobsoletes_noarch(self):
+ def testUpdatei386Tonoarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_noarch])
self.assert_(res==2, msg)
self.assertResult((p.update_noarch,))
- def testUpdatei386Tobsoletes_noarchForDependency(self):
+ 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==2, msg)
@@ -192,7 +192,7 @@ class OperationsTests(unittest.TestCase):
res, msg = self.runOperation(['update'], [p.installed_noarch, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
self.assert_(res==2, msg)
if testbase.new_behavior:
- self.assertResult((p.update_x86_64, p.requires_update)) # ?
+ self.assertResult((p.update_i386, p.update_x86_64, p.requires_update)) # ?
else:
self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
@@ -205,7 +205,7 @@ class OperationsTests(unittest.TestCase):
res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_i386, p.obsoletes_x86_64])
self.assert_(res==2, msg)
if testbase.new_behavior:
- self.assertResult((p.obsoletes_x86_64,))
+ self.assertResult((p.obsoletes_x86_64,), (p.obsoletes_i386,))
else:
self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
def testObsoletenoarchToMultiarchForDependency(self):
@@ -214,7 +214,7 @@ class OperationsTests(unittest.TestCase):
[p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
self.assert_(res==2, msg)
if testbase.new_behavior:
- self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes), (p.obsoletes_i386,))
else:
self.assertResult((p.installed_noarch, p.obsoletes_x86_64, p.requires_obsoletes))
def testObsoletenoarchToMultiarchForDependencyFix(self):
@@ -234,7 +234,7 @@ class OperationsTests(unittest.TestCase):
res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
self.assert_(res==2, msg)
if testbase.new_behavior:
- self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+ self.assertResult((p.obsoletes_i386, p.requires_obsoletes))
else:
self.assertResult((p.installed_i386, p.obsoletes_x86_64, p.requires_obsoletes))
def testObsoletei386ToMultiarchForDependencyFix(self):
@@ -274,12 +274,12 @@ class OperationsTests(unittest.TestCase):
else:
self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
- def testObsoleteMultiarchTobsoletes_noarch(self):
+ def testObsoleteMultiarchTonoarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch])
self.assert_(res==2, msg)
self.assertResult((p.obsoletes_noarch,))
- def testObsoleteMultiarchTobsoletes_noarchForDependency(self):
+ 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==2, msg)
commit fbcc65faa73b7540eb6a341c64aa485c43dfedcd
Author: Florian Festi <ffesti at redhat.com>
Date: Tue Oct 23 11:33:09 2007 +0200
Print depsolve message if test fails
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 5f08a86..e639709 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -106,7 +106,7 @@ class DepsolveTests(unittest.TestCase):
solver = build_depsolver(self.tsInfo, self.rpmdb, self.xsack)
result = solver.resolveDeps()
res = {0 : 'empty', 2 : 'ok', 1 : 'err'}
- return (res[result[0]])
+ return (res[result[0]], result[1])
def assertResult(self, pkgs, optional_pkgs=[], check_multilib_versions=True):
errors = ["assertResult:\n"]
@@ -138,13 +138,13 @@ 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.assertEquals('empty', *self.resolveCode())
def testInstallSinglePackageNoRequires(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
self.tsInfo.addInstall(po)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po,))
def testInstallSinglePackageRequireNotProvided(self):
@@ -152,7 +152,7 @@ class DepsolveTests(unittest.TestCase):
po.addRequires('zip', None, (None, None, None))
self.tsInfo.addInstall(po)
- self.assertEquals('err', self.resolveCode())
+ self.assertEquals('err', *self.resolveCode())
def testInstallSinglePackageRequireInstalled(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -162,7 +162,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1', '1', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireInstalledRequireNotProvided(self):
@@ -174,7 +174,7 @@ class DepsolveTests(unittest.TestCase):
po.addRequires('zap', None, (None, None, None))
self.rpmdb.addPackage(ipo)
- self.assertEquals('err', self.resolveCode())
+ self.assertEquals('err', *self.resolveCode())
def testInstallSinglePackageRequireInstalledRequireInstall(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -187,7 +187,7 @@ class DepsolveTests(unittest.TestCase):
po.addRequires('zap', None, (None, None, None))
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, po2, ipo))
@@ -199,7 +199,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.0', '2', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('err', self.resolveCode())
+ self.assertEquals('err', *self.resolveCode())
def testInstallSinglePackageRequireVer1Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -209,7 +209,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '2', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer2NotProvided(self):
@@ -220,7 +220,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '2', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('err', self.resolveCode())
+ self.assertEquals('err', *self.resolveCode())
def testInstallSinglePackageRequireVer2Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -230,7 +230,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '4', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer3NotProvided(self):
@@ -241,7 +241,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '4', '0', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('err', self.resolveCode())
+ self.assertEquals('err', *self.resolveCode())
def testInstallSinglePackageRequireVer3Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -251,7 +251,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4NotProvided(self):
@@ -262,7 +262,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '4', '2', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('err', self.resolveCode())
+ self.assertEquals('err', *self.resolveCode())
def testInstallSinglePackageRequireVer4_1Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -272,7 +272,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.0', '4', '2', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_2Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -282,7 +282,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '3', '2', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_3Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -292,7 +292,7 @@ class DepsolveTests(unittest.TestCase):
ipo = self.FakeInstPkg('zip', '1.3', '4', None, 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_4Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -302,7 +302,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '1.3', '4', '1', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_5Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -312,7 +312,7 @@ class DepsolveTests(unittest.TestCase):
ipo = FakePackage('zip', '0.3', '4', '2', 'i386')
self.rpmdb.addPackage(ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireXtraBadVer(self):
@@ -327,7 +327,7 @@ class DepsolveTests(unittest.TestCase):
xpo = FakePackage('zap', '1.3', '4', '0', 'i386')
self.xsack.addPackage(xpo)
- self.assertEquals('err', self.resolveCode())
+ self.assertEquals('err', *self.resolveCode())
def testInstallSinglePackageRequireXtra(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -341,7 +341,7 @@ class DepsolveTests(unittest.TestCase):
xpo = FakePackage('zap', '2.6', '8', '4', 'i386')
self.xsack.addPackage(xpo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo, xpo))
def testInstallSinglePackageRequireInstalledRequireXtra(self):
@@ -356,7 +356,7 @@ class DepsolveTests(unittest.TestCase):
xpo = FakePackage('zap', '2.6', '8', '4', 'i386')
self.xsack.addPackage(xpo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireUpgradeRequireXtraErr(self):
@@ -375,7 +375,7 @@ class DepsolveTests(unittest.TestCase):
xpo.addRequires('zsh', 'EQ', ('2', '4', '8'))
self.xsack.addPackage(xpo)
- self.assertEquals('err', self.resolveCode())
+ self.assertEquals('err', *self.resolveCode())
def testInstallSinglePackageRequireUpgradeRequireXtraOk(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -392,7 +392,7 @@ class DepsolveTests(unittest.TestCase):
xpo2 = FakePackage('zap', '1.3', '4', '2', 'i386')
self.xsack.addPackage(xpo2)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, xpo, xpo2))
def testInstallSinglePackageRequireMultiXtra(self):
@@ -407,7 +407,7 @@ class DepsolveTests(unittest.TestCase):
xpo2 = FakePackage('zap', '1.3', '4', '2', 'i386')
self.xsack.addPackage(xpo2)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, xpo, xpo2))
def testInstallSinglePackageRequireInstalledMultiLib(self):
@@ -421,7 +421,7 @@ class DepsolveTests(unittest.TestCase):
xpo = FakePackage('zip', '1', '3', None, 'x86_64')
self.xsack.addPackage(xpo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, ipo))
def testInstallSinglePackageRequireXtra1MultiLib(self):
@@ -431,8 +431,7 @@ class DepsolveTests(unittest.TestCase):
xpo = FakePackage('zip', '1', '3', None, 'i386')
self.xsack.addPackage(xpo)
-
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, xpo))
def testInstallSinglePackageRequireXtra2_64MultiLib(self):
@@ -445,7 +444,7 @@ class DepsolveTests(unittest.TestCase):
xpo64 = FakePackage('zip', '1', '3', None, 'x86_64')
self.xsack.addPackage(xpo64)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, xpo64))
def testInstallSinglePackageRequireXtra2_32MultiLib(self):
@@ -458,7 +457,7 @@ class DepsolveTests(unittest.TestCase):
xpo64 = FakePackage('zip', '1', '3', None, 'x86_64')
self.xsack.addPackage(xpo64)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, xpo))
def testUpdateSinglePackage(self):
@@ -468,7 +467,7 @@ class DepsolveTests(unittest.TestCase):
po = FakePackage('zsh', '1', '3', None, 'i386')
self.tsInfo.addUpdate(po, oldpo=ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po,))
def testUpdateForDependency(self):
@@ -482,7 +481,7 @@ class DepsolveTests(unittest.TestCase):
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
self.xsack.addPackage(updatepo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, updatepo))
def testUpdateSplitPackage(self):
@@ -501,7 +500,7 @@ class DepsolveTests(unittest.TestCase):
updatepo2.addProvides('libzip', 'EQ', ('0', '2', '1'))
self.xsack.addPackage(updatepo2)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
#self.assertResult((po, updatepo, updatepo2)) # XXX obsolete needed?
self.assertResult((po, installedpo, updatepo2))
@@ -516,7 +515,7 @@ class DepsolveTests(unittest.TestCase):
xpo = FakePackage('zip', '1', '3', None, 'x86_64')
self.xsack.addPackage(xpo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, xpo))
def testUpdateSinglePackageOldRequires(self):
@@ -531,7 +530,7 @@ class DepsolveTests(unittest.TestCase):
po.addRequires('zip', None, (None, None, None))
self.tsInfo.addUpdate(po, oldpo=ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, xpo))
def testUpdateSinglePackageOldRequiresGone(self):
@@ -545,7 +544,7 @@ class DepsolveTests(unittest.TestCase):
po = FakePackage('zsh', '1', '3', None, 'i386')
self.tsInfo.addUpdate(po, oldpo=ipo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, xpo))
def testUpdateSinglePackageObsoletesOldRequirement(self):
@@ -564,7 +563,7 @@ class DepsolveTests(unittest.TestCase):
self.tsInfo.addObsoleting(po, opo)
self.tsInfo.addObsoleted(opo, po)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po,))
def testUpdateForConflict(self):
@@ -579,10 +578,10 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(updatepo)
if testbase.new_behavior:
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, updatepo))
else:
- self.assertEquals('err', self.resolveCode())
+ self.assertEquals('err', *self.resolveCode())
def testUpdateForConflict2(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
@@ -595,7 +594,7 @@ class DepsolveTests(unittest.TestCase):
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
self.xsack.addPackage(updatepo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, updatepo))
def testUpdateForConflictProvide(self):
@@ -611,10 +610,10 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(updatepo)
if testbase.new_behavior:
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, updatepo))
else:
- self.assertEquals('err', self.resolveCode())
+ self.assertEquals('err', *self.resolveCode())
def testUpdateForConflictProvide2(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
@@ -631,7 +630,7 @@ class DepsolveTests(unittest.TestCase):
updatepo.addConflicts('zippy', 'LT', ('0', '2', '1'))
self.xsack.addPackage(updatepo)
- self.assertEquals('ok', self.resolveCode())
+ self.assertEquals('ok', *self.resolveCode())
self.assertResult((po, updatepo))
def suite():
commit 92131e9cd77885765e0ce65cca4e2ca2f2540602
Author: Florian Festi <ffesti at redhat.com>
Date: Wed Oct 17 15:36:18 2007 +0200
Remove tsInfo checks in depsolve test cases as we have assertResult() now
Enable testUpdateForConflictProvide
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 64cc8d3..5f08a86 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -343,17 +343,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, ipo, xpo))
-
- 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')
@@ -368,17 +357,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(xpo)
self.assertEquals('ok', self.resolveCode())
- #self.assertResult((po, ipo, xpo)) # ????????????
-
- 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)
+ self.assertResult((po, ipo))
def testInstallSinglePackageRequireUpgradeRequireXtraErr(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -415,24 +394,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, xpo, xpo2))
-
- txmbrs = self.tsInfo.matchNaevr()
- self.assertEquals(4, 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(2, len(txmbrs))
- self.assertEquals(('zip', 'i386', '4', '2.6', '8'), txmbrs[0].pkgtup)
- self.assertEquals(txmbrs[0].ts_state, 'u')
- self.assertEquals(('zip', 'i386', '2', '1.3', '4'), txmbrs[1].pkgtup)
- self.assertEquals(txmbrs[1].ts_state, None)
-
- 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')
@@ -448,21 +409,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, xpo, xpo2))
-
- 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')
@@ -478,9 +424,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, ipo))
- 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))
@@ -492,10 +435,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, xpo))
- 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))
@@ -509,10 +448,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, xpo64))
- 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))
@@ -526,10 +461,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, xpo))
- txmbrs = self.tsInfo.matchNaevr('zip')
- 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)
@@ -540,9 +471,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po,))
- txmbrs = self.tsInfo.matchNaevr('zsh')
- self.assertEquals(2, len(txmbrs))
-
def testUpdateForDependency(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
po.addRequires('zip', 'EQ', ('0', '2', '1'))
@@ -556,7 +484,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, updatepo))
- self.assert_(self.tsInfo.getMembers(updatepo.pkgtup))
def testUpdateSplitPackage(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
@@ -577,7 +504,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
#self.assertResult((po, updatepo, updatepo2)) # XXX obsolete needed?
self.assertResult((po, installedpo, updatepo2))
- self.assert_(self.tsInfo.getMembers(po.pkgtup), "Package not installed")
def testUpdateSinglePackageNewRequires(self):
ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
@@ -593,10 +519,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, xpo))
- 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))
@@ -612,9 +534,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, xpo))
- 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))
@@ -648,18 +567,7 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po,))
- 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 _XXX_testUpdateForConflict(self):
+ def testUpdateForConflict(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
po.addConflicts('zip', 'LE', ('0', '1', '1'))
self.tsInfo.addInstall(po)
@@ -670,9 +578,11 @@ class DepsolveTests(unittest.TestCase):
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
self.xsack.addPackage(updatepo)
- self.assertEquals('ok', self.resolveCode())
- self.assertResult((po, updatepo))
- self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
+ if testbase.new_behavior:
+ self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, updatepo))
+ else:
+ self.assertEquals('err', self.resolveCode())
def testUpdateForConflict2(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
@@ -687,9 +597,8 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, updatepo))
- self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
- def _XXX_testUpdateForConflictProvide(self):
+ def testUpdateForConflictProvide(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
po.addConflicts('zippy', 'LE', ('0', '1', '1'))
self.tsInfo.addInstall(po)
@@ -701,9 +610,11 @@ class DepsolveTests(unittest.TestCase):
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
self.xsack.addPackage(updatepo)
- self.assertEquals('ok', self.resolveCode())
- self.assertResult((po, updatepo))
- self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
+ if testbase.new_behavior:
+ self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, updatepo))
+ else:
+ self.assertEquals('err', self.resolveCode())
def testUpdateForConflictProvide2(self):
po = FakePackage('zsh', '1', '1', '0', 'i386')
@@ -722,7 +633,6 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
self.assertResult((po, updatepo))
- self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
def suite():
suite = unittest.TestSuite()
commit 01960193638500a8a33888ce0b255892047a168e
Author: Florian Festi <ffesti at redhat.com>
Date: Wed Oct 17 14:25:39 2007 +0200
Add --new_behavior param to test suite
Rename settestpath to testbase
Support --new_behavior in all operationstests cases where current behavior is questionable
diff --git a/Makefile b/Makefile
index 300534f..20274a9 100644
--- a/Makefile
+++ b/Makefile
@@ -48,6 +48,9 @@ test:
check: test
+testnewbehavior:
+ python test/alltests.py --new_behavior
+
archive: remove_spec = ${PKGNAME}-daily.spec
archive: _archive
diff --git a/test/alltests.py b/test/alltests.py
index 93eb7b0..a0911db 100644
--- a/test/alltests.py
+++ b/test/alltests.py
@@ -1,5 +1,5 @@
import unittest
-import settestpath
+import testbase
import depsolvetests
import packagetests
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index cdd4174..64cc8d3 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -1,5 +1,5 @@
import unittest
-import settestpath
+import testbase
from yum import YumBase
from yum import transactioninfo
diff --git a/test/operationstests.py b/test/operationstests.py
index fa21724..52291b6 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -1,4 +1,5 @@
import unittest
+import testbase
from depsolvetests import FakePackage, FakeRepo, FakeConf
from yum.constants import TS_INSTALL_STATES, TS_REMOVE_STATES
@@ -103,8 +104,10 @@ class OperationsTests(unittest.TestCase):
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==2, msg)
- self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
- #self.assertResult((p.update_i386, p.requires_update))
+ if testbase.new_behavior:
+ self.assertResult((p.update_i386, p.requires_update))
+ else:
+ self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
def testUpdatei386ToMultilibForDependencyFix(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
@@ -132,8 +135,10 @@ class OperationsTests(unittest.TestCase):
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==2, msg)
- #self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
- self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
+ if testbase.new_behavior:
+ self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
+ else:
+ self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
def testUpdatei386Tobsoletes_noarch(self):
p = self.pkgs
@@ -144,61 +149,78 @@ class OperationsTests(unittest.TestCase):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_noarch, p.requires_update])
self.assert_(res==2, msg)
- #self.assertResult((p.update_noarch, p.requires_update))
- self.assertResult((p.installed_i386, p.update_noarch, p.requires_update))
+ if testbase.new_behavior:
+ self.assertResult((p.update_noarch, p.requires_update))
+ else:
+ self.assertResult((p.installed_i386, p.update_noarch, p.requires_update))
- def testUpdateMultilibTobsoletes_noarch(self):
+ def testUpdateMultilibTonoarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_noarch])
self.assert_(res==2, msg)
- #self.assertResult((p.update_noarch,))
- self.assertResult((p.update_noarch, p.installed_x86_64))
- def testUpdateMultilibTobsoletes_noarchForDependency(self):
+ if testbase.new_behavior:
+ self.assertResult((p.update_noarch,))
+ else:
+ self.assertResult((p.update_noarch, p.installed_x86_64))
+ 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==2, msg)
- #self.assertResult((p.update_noarch, p.requires_update))
- self.assertResult((p.installed_i386, p.installed_x86_64, p.update_noarch, p.requires_update))
+ if testbase.new_behavior:
+ self.assertResult((p.update_noarch, p.requires_update))
+ else:
+ self.assertResult((p.installed_i386, p.installed_x86_64, p.update_noarch, 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==2, msg)
- self.assertResult((p.update_i386, p.update_x86_64))
- # self.assertResult((p.update_x86_64)) # ?
+ if testbase.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==2, msg)
- # self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
- # self.assertResult((p.update_x86_64, p.requires_update))
- self.assertResult((p.installed_noarch, p.update_x86_64, p.requires_update))
+ if testbase.new_behavior:
+ self.assertResult((p.update_x86_64, p.requires_update), (p.update_i386,))
+ else:
+ self.assertResult((p.installed_noarch, p.update_x86_64, p.requires_update))
def testUpdatenoarchToMultilibForDependencyFix(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.installed_noarch, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
self.assert_(res==2, msg)
- self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
- # self.assertResult((p.update_x86_64, p.requires_update)) # ?
+ if testbase.new_behavior:
+ self.assertResult((p.update_x86_64, p.requires_update)) # ?
+ else:
+ self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
- # obsoletes
+ ###################################################
+ ### 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==2, msg)
- #self.assertResult((p.obsoletes_x86_64,))
- self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
+ if testbase.new_behavior:
+ self.assertResult((p.obsoletes_x86_64,))
+ 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==2, msg)
- #self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
- self.assertResult((p.installed_noarch, p.obsoletes_x86_64, p.requires_obsoletes))
+ if testbase.new_behavior:
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+ else:
+ self.assertResult((p.installed_noarch, p.obsoletes_x86_64, p.requires_obsoletes))
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==2, msg)
+ 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))
@@ -211,13 +233,15 @@ class OperationsTests(unittest.TestCase):
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==2, msg)
- #self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
- self.assertResult((p.installed_i386, p.obsoletes_x86_64, p.requires_obsoletes))
+ if testbase.new_behavior:
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+ else:
+ self.assertResult((p.installed_i386, p.obsoletes_x86_64, 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==2, msg)
- #self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
+ 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):
@@ -230,8 +254,10 @@ class OperationsTests(unittest.TestCase):
res, msg = self.runOperation(['install', 'superzippy'],
[p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
self.assert_(res==2, msg)
- #self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
- self.assertResult((p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
+ if testbase.new_behavior:
+ self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+ else:
+ self.assertResult((p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
def testObsoleteMultiarchToMultiarch(self):
p = self.pkgs
@@ -243,8 +269,10 @@ class OperationsTests(unittest.TestCase):
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==2, msg)
- #self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
- self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
+ if testbase.new_behavior:
+ self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
+ else:
+ self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
def testObsoleteMultiarchTobsoletes_noarch(self):
p = self.pkgs
@@ -255,16 +283,19 @@ class OperationsTests(unittest.TestCase):
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==2, msg)
- #self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
- self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_noarch, p.requires_obsoletes))
+ if testbase.new_behavior:
+ self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
+ else:
+ self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_noarch, p.requires_obsoletes))
# Obsolete for conflict
- def _XXX_testObsoleteForConflict(self):
+ def testObsoleteForConflict(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'super-zippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.conflicts])
- self.assert_(res==2, msg)
- self.assertResult((p.obsoletes_i386, p.conflicts))
+ if testbase.new_behavior:
+ self.assert_(res==2, msg)
+ self.assertResult((p.obsoletes_i386, p.conflicts))
def suite():
suite = unittest.TestSuite()
diff --git a/test/packagetests.py b/test/packagetests.py
index 56f73ec..b45d629 100644
--- a/test/packagetests.py
+++ b/test/packagetests.py
@@ -1,5 +1,5 @@
import unittest
-import settestpath
+import testbase
from yum import packages
from rpmUtils import miscutils
diff --git a/test/testbase.py b/test/testbase.py
new file mode 100644
index 0000000..e2faf7e
--- /dev/null
+++ b/test/testbase.py
@@ -0,0 +1,10 @@
+import sys
+
+# Adjust path so we can see the src modules running from branch as well
+# as test dir:
+sys.path.insert(0, '../../')
+sys.path.insert(0, '../')
+sys.path.insert(0, './')
+
+new_behavior = "--new_behavior" in sys.argv
+sys.argv = filter("--new_behavior".__ne__, sys.argv)
commit a8213ea44e614a1150d022165a8440c3942b538e
Author: Florian Festi <ffesti at redhat.com>
Date: Wed Oct 17 17:30:52 2007 +0200
Use more verbose pkg names
diff --git a/test/operationstests.py b/test/operationstests.py
index 5e93502..fa21724 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -14,32 +14,32 @@ class OperationsTests(unittest.TestCase):
unittest.TestCase.__init__(self, methodName)
self.pkgs = Container()
# installed
- self.pkgs.ii386 = FakePackage('zsh', '1', '1', '0', 'i386')
- self.pkgs.ix86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
- self.pkgs.inoarch = FakePackage('zsh', '1', '1', '0', 'noarch')
+ self.pkgs.installed_i386 = FakePackage('zsh', '1', '1', '0', 'i386')
+ self.pkgs.installed_x86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
+ self.pkgs.installed_noarch = FakePackage('zsh', '1', '1', '0', 'noarch')
# updates
- self.pkgs.ui386 = FakePackage('zsh', '2', '1', '0', 'i386')
- self.pkgs.ux86_64 = FakePackage('zsh', '2', '1', '0', 'x86_64')
- self.pkgs.unoarch = FakePackage('zsh', '2', '1', '0', 'noarch')
+ self.pkgs.update_i386 = FakePackage('zsh', '2', '1', '0', 'i386')
+ self.pkgs.update_x86_64 = FakePackage('zsh', '2', '1', '0', 'x86_64')
+ self.pkgs.update_noarch = FakePackage('zsh', '2', '1', '0', 'noarch')
# requires update
- self.pkgs.ru = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
- self.pkgs.ru.addRequires('zsh', 'EQ', ('0', '2', '1'))
+ self.pkgs.requires_update = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
+ self.pkgs.requires_update.addRequires('zsh', 'EQ', ('0', '2', '1'))
# obsoletes
- self.pkgs.oi386 = FakePackage('zsh-ng', '0.3', '1', '0', 'i386')
- self.pkgs.oi386.addObsoletes('zsh', None, (None, None, None))
- self.pkgs.oi386.addProvides('zzz')
- self.pkgs.ox86_64 = FakePackage('zsh-ng', '0.3', '1', '0', 'x86_64')
- self.pkgs.ox86_64.addObsoletes('zsh', None, (None, None, None))
- self.pkgs.ox86_64.addProvides('zzz')
- self.pkgs.onoarch = FakePackage('zsh-ng', '0.3', '1', '0', 'noarch')
- self.pkgs.onoarch.addObsoletes('zsh', None, (None, None, None))
- self.pkgs.onoarch.addProvides('zzz')
+ self.pkgs.obsoletes_i386 = FakePackage('zsh-ng', '0.3', '1', '0', 'i386')
+ self.pkgs.obsoletes_i386.addObsoletes('zsh', None, (None, None, None))
+ self.pkgs.obsoletes_i386.addProvides('zzz')
+ self.pkgs.obsoletes_x86_64 = FakePackage('zsh-ng', '0.3', '1', '0', 'x86_64')
+ self.pkgs.obsoletes_x86_64.addObsoletes('zsh', None, (None, None, None))
+ self.pkgs.obsoletes_x86_64.addProvides('zzz')
+ self.pkgs.obsoletes_noarch = FakePackage('zsh-ng', '0.3', '1', '0', 'noarch')
+ self.pkgs.obsoletes_noarch.addObsoletes('zsh', None, (None, None, None))
+ self.pkgs.obsoletes_noarch.addProvides('zzz')
# requires obsoletes
- self.pkgs.ro = FakePackage('superzippy', '3.5', '3', '0', 'noarch')
- self.pkgs.ro.addRequires('zzz')
+ self.pkgs.requires_obsoletes = FakePackage('superzippy', '3.5', '3', '0', 'noarch')
+ self.pkgs.requires_obsoletes.addRequires('zzz')
# conflicts
- self.pkgs.conflict = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
- self.pkgs.conflict.addConflicts('zsh', 'EQ', ('0', '1', '1'))
+ self.pkgs.conflicts = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
+ self.pkgs.conflicts.addConflicts('zsh', 'EQ', ('0', '1', '1'))
def runOperation(self, args, installed=[], available=[]):
@@ -96,175 +96,175 @@ class OperationsTests(unittest.TestCase):
def testUpdatei386ToMultilib(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.ii386], [p.ui386, p.ux86_64])
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_i386, p.update_x86_64])
self.assert_(res==2, msg)
- self.assertResult((p.ui386,))
+ self.assertResult((p.update_i386,))
def testUpdatei386ToMultilibForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386], [p.ui386, p.ux86_64, p.ru])
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_i386, p.update_x86_64, p.requires_update])
self.assert_(res==2, msg)
- self.assertResult((p.ii386, p.ux86_64, p.ru))
- #self.assertResult((p.ui386, p.ru))
+ self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
+ #self.assertResult((p.update_i386, p.requires_update))
def testUpdatei386ToMultilibForDependencyFix(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.ii386, p.ux86_64, p.ru], [p.ui386, p.ux86_64])
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
self.assert_(res==2, msg)
- self.assertResult((p.ui386, p.ux86_64, p.ru))
+ self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
def testUpdatex86_64ToMultilib(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.ix86_64], [p.ui386, p.ux86_64])
+ res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.update_i386, p.update_x86_64])
self.assert_(res==2, msg)
- self.assertResult((p.ux86_64,))
+ self.assertResult((p.update_x86_64,))
def testUpdatex86_64ToMultilibForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.ix86_64],
- [p.ui386, p.ux86_64, p.ru])
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_x86_64],
+ [p.update_i386, p.update_x86_64, p.requires_update])
self.assert_(res==2, msg)
- self.assertResult((p.ux86_64, p.ru))
+ self.assertResult((p.update_x86_64, p.requires_update))
def testUpdateMultilibToMultilib(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.ui386, p.ux86_64])
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_i386, p.update_x86_64])
self.assert_(res==2, msg)
- self.assertResult((p.ui386, p.ux86_64))
+ self.assertResult((p.update_i386, p.update_x86_64))
def testUpdateMultilibToMultilibForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386, p.ix86_64], [p.ui386, p.ux86_64, p.ru])
+ 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==2, msg)
- #self.assertResult((p.ui386, p.ux86_64, p.ru))
- self.assertResult((p.ii386, p.ux86_64, p.ru))
+ #self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
+ self.assertResult((p.installed_i386, p.update_x86_64, p.requires_update))
- def testUpdatei386Tonoarch(self):
+ def testUpdatei386Tobsoletes_noarch(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.ii386], [p.unoarch])
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.update_noarch])
self.assert_(res==2, msg)
- self.assertResult((p.unoarch,))
- def testUpdatei386TonoarchForDependency(self):
+ self.assertResult((p.update_noarch,))
+ def testUpdatei386Tobsoletes_noarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386], [p.unoarch, p.ru])
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386], [p.update_noarch, p.requires_update])
self.assert_(res==2, msg)
- #self.assertResult((p.unoarch, p.ru))
- self.assertResult((p.ii386, p.unoarch, p.ru))
+ #self.assertResult((p.update_noarch, p.requires_update))
+ self.assertResult((p.installed_i386, p.update_noarch, p.requires_update))
- def testUpdateMultilibTonoarch(self):
+ def testUpdateMultilibTobsoletes_noarch(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.unoarch])
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.update_noarch])
self.assert_(res==2, msg)
- #self.assertResult((p.unoarch,))
- self.assertResult((p.unoarch, p.ix86_64))
- def testUpdateMultilibTonoarchForDependency(self):
+ #self.assertResult((p.update_noarch,))
+ self.assertResult((p.update_noarch, p.installed_x86_64))
+ def testUpdateMultilibTobsoletes_noarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386, p.ix86_64], [p.unoarch, p.ru])
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_i386, p.installed_x86_64], [p.update_noarch, p.requires_update])
self.assert_(res==2, msg)
- #self.assertResult((p.unoarch, p.ru))
- self.assertResult((p.ii386, p.ix86_64, p.unoarch, p.ru))
+ #self.assertResult((p.update_noarch, p.requires_update))
+ self.assertResult((p.installed_i386, p.installed_x86_64, p.update_noarch, p.requires_update))
def testUpdatenoarchToMultilib(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.inoarch], [p.ui386, p.ux86_64])
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.update_i386, p.update_x86_64])
self.assert_(res==2, msg)
- self.assertResult((p.ui386, p.ux86_64))
- # self.assertResult((p.ux86_64)) # ?
+ self.assertResult((p.update_i386, p.update_x86_64))
+ # self.assertResult((p.update_x86_64)) # ?
def testUpdatenoarchToMultilibForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.inoarch], [p.ui386, p.ux86_64, p.ru])
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.installed_noarch], [p.update_i386, p.update_x86_64, p.requires_update])
self.assert_(res==2, msg)
- # self.assertResult((p.ui386, p.ux86_64, p.ru))
- # self.assertResult((p.ux86_64, p.ru))
- self.assertResult((p.inoarch, p.ux86_64, p.ru))
+ # self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
+ # self.assertResult((p.update_x86_64, p.requires_update))
+ self.assertResult((p.installed_noarch, p.update_x86_64, p.requires_update))
def testUpdatenoarchToMultilibForDependencyFix(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.inoarch, p.ux86_64, p.ru], [p.ui386, p.ux86_64])
+ res, msg = self.runOperation(['update'], [p.installed_noarch, p.update_x86_64, p.requires_update], [p.update_i386, p.update_x86_64])
self.assert_(res==2, msg)
- self.assertResult((p.ui386, p.ux86_64, p.ru))
- # self.assertResult((p.ux86_64, p.ru)) # ?
+ self.assertResult((p.update_i386, p.update_x86_64, p.requires_update))
+ # self.assertResult((p.update_x86_64, p.requires_update)) # ?
# obsoletes
def testObsoletenoarchToMultiarch(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.inoarch], [p.oi386, p.ox86_64])
+ res, msg = self.runOperation(['update'], [p.installed_noarch], [p.obsoletes_i386, p.obsoletes_x86_64])
self.assert_(res==2, msg)
- #self.assertResult((p.ox86_64,))
- self.assertResult((p.oi386, p.ox86_64))
+ #self.assertResult((p.obsoletes_x86_64,))
+ self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
def testObsoletenoarchToMultiarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'], [p.inoarch],
- [p.oi386, p.ox86_64, p.ro])
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_noarch],
+ [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
self.assert_(res==2, msg)
- #self.assertResult((p.ox86_64, p.ro))
- self.assertResult((p.inoarch, p.ox86_64, p.ro))
+ #self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+ self.assertResult((p.installed_noarch, p.obsoletes_x86_64, p.requires_obsoletes))
def testObsoletenoarchToMultiarchForDependencyFix(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.inoarch, p.ox86_64, p.ro], [p.oi386, p.ox86_64])
+ 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==2, msg)
- #self.assertResult((p.ox86_64,)) # yes, this would be nice - but also wrong
- self.assertResult((p.inoarch, p.ox86_64, p.ro))
+ #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.ii386], [p.oi386, p.ox86_64])
+ res, msg = self.runOperation(['update'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64])
self.assert_(res==2, msg)
- self.assertResult((p.oi386,))
+ self.assertResult((p.obsoletes_i386,))
def testObsoletei386ToMultiarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'], [p.ii386], [p.oi386, p.ox86_64, p.ro])
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
self.assert_(res==2, msg)
- #self.assertResult((p.ox86_64, p.ro))
- self.assertResult((p.ii386, p.ox86_64, p.ro))
+ #self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+ self.assertResult((p.installed_i386, p.obsoletes_x86_64, p.requires_obsoletes))
def testObsoletei386ToMultiarchForDependencyFix(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.ii386, p.ox86_64, p.ro], [p.oi386, p.ox86_64])
+ 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==2, msg)
- #self.assertResult((p.oi386, p.ox86_64, p.ro))
- self.assertResult((p.ii386, p.ox86_64, p.ro))
+ #self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
+ 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.ix86_64], [p.oi386, p.ox86_64])
+ res, msg = self.runOperation(['update'], [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
self.assert_(res==2, msg)
- self.assertResult((p.ox86_64,))
+ self.assertResult((p.obsoletes_x86_64,))
def testObsoletex86_64ToMultiarchForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'superzippy'],
- [p.ix86_64], [p.oi386, p.ox86_64, p.ro])
+ [p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
self.assert_(res==2, msg)
- #self.assertResult((p.ox86_64, p.ro))
- self.assertResult((p.ix86_64, p.ox86_64, p.ro))
+ #self.assertResult((p.obsoletes_x86_64, p.requires_obsoletes))
+ self.assertResult((p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
def testObsoleteMultiarchToMultiarch(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.oi386, p.ox86_64])
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64])
self.assert_(res==2, msg)
- self.assertResult((p.oi386, p.ox86_64))
+ self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64))
def testObsoleteMultiarchToMultiarchForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'superzippy'],
- [p.ii386, p.ix86_64], [p.oi386, p.ox86_64, p.ro])
+ [p.installed_i386, p.installed_x86_64], [p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes])
self.assert_(res==2, msg)
- #self.assertResult((p.oi386, p.ox86_64, p.ro))
- self.assertResult((p.ii386, p.ix86_64, p.ox86_64, p.ro))
+ #self.assertResult((p.obsoletes_i386, p.obsoletes_x86_64, p.requires_obsoletes))
+ self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_x86_64, p.requires_obsoletes))
- def testObsoleteMultiarchTonoarch(self):
+ def testObsoleteMultiarchTobsoletes_noarch(self):
p = self.pkgs
- res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.onoarch])
+ res, msg = self.runOperation(['update'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch])
self.assert_(res==2, msg)
- self.assertResult((p.onoarch,))
- def testObsoleteMultiarchTonoarchForDependency(self):
+ self.assertResult((p.obsoletes_noarch,))
+ def testObsoleteMultiarchTobsoletes_noarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'], [p.ii386, p.ix86_64], [p.onoarch, p.ro])
+ res, msg = self.runOperation(['install', 'superzippy'], [p.installed_i386, p.installed_x86_64], [p.obsoletes_noarch, p.requires_obsoletes])
self.assert_(res==2, msg)
- #self.assertResult((p.onoarch, p.ro))
- self.assertResult((p.ii386, p.ix86_64, p.onoarch, p.ro))
+ #self.assertResult((p.obsoletes_noarch, p.requires_obsoletes))
+ self.assertResult((p.installed_i386, p.installed_x86_64, p.obsoletes_noarch, p.requires_obsoletes))
# Obsolete for conflict
def _XXX_testObsoleteForConflict(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'super-zippy'], [p.ii386], [p.oi386, p.ox86_64, p.conflict])
+ res, msg = self.runOperation(['install', 'super-zippy'], [p.installed_i386], [p.obsoletes_i386, p.obsoletes_x86_64, p.conflicts])
self.assert_(res==2, msg)
- self.assertResult((p.oi386, p.conflict))
+ self.assertResult((p.obsoletes_i386, p.conflicts))
def suite():
suite = unittest.TestSuite()
commit 6be87d34816992396bb7ce7da388d31806ea3113
Author: Florian Festi <ffesti at redhat.com>
Date: Wed Oct 17 12:31:39 2007 +0200
Add test cases to see what happens when running "yum update" afterwards
diff --git a/test/operationstests.py b/test/operationstests.py
index 6c0568f..5e93502 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -105,6 +105,11 @@ class OperationsTests(unittest.TestCase):
self.assert_(res==2, msg)
self.assertResult((p.ii386, p.ux86_64, p.ru))
#self.assertResult((p.ui386, p.ru))
+ def testUpdatei386ToMultilibForDependencyFix(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ii386, p.ux86_64, p.ru], [p.ui386, p.ux86_64])
+ self.assert_(res==2, msg)
+ self.assertResult((p.ui386, p.ux86_64, p.ru))
def testUpdatex86_64ToMultilib(self):
p = self.pkgs
@@ -160,7 +165,7 @@ class OperationsTests(unittest.TestCase):
res, msg = self.runOperation(['update'], [p.inoarch], [p.ui386, p.ux86_64])
self.assert_(res==2, msg)
self.assertResult((p.ui386, p.ux86_64))
- # self.assertResult((p.ux86_64)) # ???
+ # self.assertResult((p.ux86_64)) # ?
def testUpdatenoarchToMultilibForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.inoarch], [p.ui386, p.ux86_64, p.ru])
@@ -168,6 +173,12 @@ class OperationsTests(unittest.TestCase):
# self.assertResult((p.ui386, p.ux86_64, p.ru))
# self.assertResult((p.ux86_64, p.ru))
self.assertResult((p.inoarch, p.ux86_64, p.ru))
+ def testUpdatenoarchToMultilibForDependencyFix(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.inoarch, p.ux86_64, p.ru], [p.ui386, p.ux86_64])
+ self.assert_(res==2, msg)
+ self.assertResult((p.ui386, p.ux86_64, p.ru))
+ # self.assertResult((p.ux86_64, p.ru)) # ?
# obsoletes
@@ -184,6 +195,12 @@ class OperationsTests(unittest.TestCase):
self.assert_(res==2, msg)
#self.assertResult((p.ox86_64, p.ro))
self.assertResult((p.inoarch, p.ox86_64, p.ro))
+ def testObsoletenoarchToMultiarchForDependencyFix(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.inoarch, p.ox86_64, p.ro], [p.oi386, p.ox86_64])
+ #self.assert_(res==2, msg)
+ #self.assertResult((p.ox86_64,)) # yes, this would be nice - but also wrong
+ self.assertResult((p.inoarch, p.ox86_64, p.ro))
def testObsoletei386ToMultiarch(self):
p = self.pkgs
@@ -196,6 +213,12 @@ class OperationsTests(unittest.TestCase):
self.assert_(res==2, msg)
#self.assertResult((p.ox86_64, p.ro))
self.assertResult((p.ii386, p.ox86_64, p.ro))
+ def testObsoletei386ToMultiarchForDependencyFix(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ii386, p.ox86_64, p.ro], [p.oi386, p.ox86_64])
+ #self.assert_(res==2, msg)
+ #self.assertResult((p.oi386, p.ox86_64, p.ro))
+ self.assertResult((p.ii386, p.ox86_64, p.ro))
def testObsoletex86_64ToMultiarch(self):
p = self.pkgs
commit 163ed67f6195ed66de4e5f39db236be76174d3a7
Author: Florian Festi <ffesti at redhat.com>
Date: Tue Oct 16 11:49:26 2007 +0200
Add assertResult() to all test cases that don't fail
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 7add400..cdd4174 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -5,6 +5,7 @@ from yum import YumBase
from yum import transactioninfo
from yum import packages
from yum import packageSack
+from yum.constants import TS_INSTALL_STATES, TS_REMOVE_STATES
class FakeConf(object):
@@ -107,6 +108,32 @@ class DepsolveTests(unittest.TestCase):
res = {0 : 'empty', 2 : 'ok', 1 : 'err'}
return (res[result[0]])
+ def assertResult(self, pkgs, optional_pkgs=[], check_multilib_versions=True):
+ errors = ["assertResult:\n"]
+ pkgs = set(pkgs)
+ optional_pkgs = set(optional_pkgs)
+ installed = set()
+
+ for pkg in self.rpmdb:
+ # got removed
+ if self.tsInfo.getMembersWithState(pkg.pkgtup, TS_REMOVE_STATES):
+ if pkg in pkgs:
+ errors.append("Package %s got removed!\n" % pkg)
+ else: # still installed
+ installed.add(pkg)
+ if pkg not in pkgs and pkg not in optional_pkgs:
+ errors.append("Package %s didn't got removed!\n" % pkg)
+
+ for txmbr in self.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
+ installed.add(txmbr.po)
+ if txmbr.po not in pkgs and txmbr.po not in optional_pkgs:
+ errors.append("Package %s got installed!\n" % txmbr.po)
+ for pkg in pkgs - installed:
+ errors.append("Package %s didn't got installed!\n" % pkg)
+
+ if len(errors) > 1:
+ self.fail("".join(errors))
+
def testEmpty(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
self.tsInfo.addInstall(po)
@@ -118,6 +145,7 @@ class DepsolveTests(unittest.TestCase):
self.tsInfo.addInstall(po)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po,))
def testInstallSinglePackageRequireNotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -135,6 +163,7 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo))
def testInstallSinglePackageRequireInstalledRequireNotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -151,14 +180,15 @@ class DepsolveTests(unittest.TestCase):
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)
+ po2 = FakePackage('zap', '1', '2', None, 'i386')
+ self.tsInfo.addInstall(po2)
ipo = FakePackage('zip', '1', '3', None, 'i386')
po.addRequires('zap', None, (None, None, None))
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, po2, ipo))
def testInstallSinglePackageRequireVer1NotProvided(self):
@@ -180,6 +210,7 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer2NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -200,6 +231,7 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer3NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -220,6 +252,7 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4NotProvided(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -240,6 +273,7 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_2Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', 'LT', ('2', '1.3', '4'))
@@ -249,6 +283,7 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_3Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', 'LT', ('2', '1.3', '4'))
@@ -258,6 +293,7 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_4Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', 'LT', ('2', '1.3', '4'))
@@ -267,6 +303,7 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo))
def testInstallSinglePackageRequireVer4_5Installed(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
po.addRequires('zip', 'LT', ('2', '1.3', '4'))
@@ -276,6 +313,7 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo))
def testInstallSinglePackageRequireXtraBadVer(self):
po = FakePackage('zsh', '1', '1', None, 'i386')
@@ -304,6 +342,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(xpo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo, xpo))
txmbrs = self.tsInfo.matchNaevr()
self.assertEquals(2, len(txmbrs))
@@ -329,6 +368,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(xpo)
self.assertEquals('ok', self.resolveCode())
+ #self.assertResult((po, ipo, xpo)) # ????????????
txmbrs = self.tsInfo.matchNaevr()
self.assertEquals(1, len(txmbrs))
@@ -370,10 +410,11 @@ class DepsolveTests(unittest.TestCase):
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)
+ xpo2 = FakePackage('zap', '1.3', '4', '2', 'i386')
+ self.xsack.addPackage(xpo2)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, xpo, xpo2))
txmbrs = self.tsInfo.matchNaevr()
self.assertEquals(4, len(txmbrs))
@@ -402,10 +443,11 @@ class DepsolveTests(unittest.TestCase):
xpo.addRequires('zap', 'EQ', ('2', '1.3', '4'))
self.xsack.addPackage(xpo)
- xpo = FakePackage('zap', '1.3', '4', '2', 'i386')
- self.xsack.addPackage(xpo)
+ xpo2 = FakePackage('zap', '1.3', '4', '2', 'i386')
+ self.xsack.addPackage(xpo2)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, xpo, xpo2))
txmbrs = self.tsInfo.matchNaevr()
self.assertEquals(3, len(txmbrs))
@@ -434,6 +476,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(xpo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, ipo))
txmbrs = self.tsInfo.matchNaevr('zip')
self.assertEquals(0, len(txmbrs))
@@ -447,6 +490,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(xpo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, xpo))
txmbrs = self.tsInfo.matchNaevr('zip')
self.assertEquals(1, len(txmbrs))
@@ -459,10 +503,11 @@ class DepsolveTests(unittest.TestCase):
xpo = FakePackage('zip', '1', '3', None, 'i386')
self.xsack.addPackage(xpo)
- xpo = FakePackage('zip', '1', '3', None, 'x86_64')
- self.xsack.addPackage(xpo)
+ xpo64 = FakePackage('zip', '1', '3', None, 'x86_64')
+ self.xsack.addPackage(xpo64)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, xpo64))
txmbrs = self.tsInfo.matchNaevr('zip')
self.assertEquals(1, len(txmbrs))
@@ -475,10 +520,11 @@ class DepsolveTests(unittest.TestCase):
xpo = FakePackage('zip', '1', '3', None, 'i386')
self.xsack.addPackage(xpo)
- xpo = FakePackage('zip', '1', '3', None, 'x86_64')
- self.xsack.addPackage(xpo)
+ xpo64 = FakePackage('zip', '1', '3', None, 'x86_64')
+ self.xsack.addPackage(xpo64)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, xpo))
txmbrs = self.tsInfo.matchNaevr('zip')
self.assertEquals(1, len(txmbrs))
@@ -492,6 +538,7 @@ class DepsolveTests(unittest.TestCase):
self.tsInfo.addUpdate(po, oldpo=ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po,))
txmbrs = self.tsInfo.matchNaevr('zsh')
self.assertEquals(2, len(txmbrs))
@@ -508,6 +555,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(updatepo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, updatepo))
self.assert_(self.tsInfo.getMembers(updatepo.pkgtup))
def testUpdateSplitPackage(self):
@@ -522,11 +570,13 @@ class DepsolveTests(unittest.TestCase):
updatepo = FakePackage('zip', '2', '1', '0', 'i386')
updatepo.addRequires('zip-libs', 'EQ', ('0', '2', '1'))
self.xsack.addPackage(updatepo)
- updatepo = FakePackage('zip-libs', '2', '1', '0', 'i386')
- updatepo.addProvides('libzip', 'EQ', ('0', '2', '1'))
- self.xsack.addPackage(updatepo)
+ updatepo2 = FakePackage('zip-libs', '2', '1', '0', 'i386')
+ updatepo2.addProvides('libzip', 'EQ', ('0', '2', '1'))
+ self.xsack.addPackage(updatepo2)
self.assertEquals('ok', self.resolveCode())
+ #self.assertResult((po, updatepo, updatepo2)) # XXX obsolete needed?
+ self.assertResult((po, installedpo, updatepo2))
self.assert_(self.tsInfo.getMembers(po.pkgtup), "Package not installed")
def testUpdateSinglePackageNewRequires(self):
@@ -541,6 +591,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(xpo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, xpo))
txmbrs = self.tsInfo.matchNaevr('zip')
self.assertEquals(1, len(txmbrs))
@@ -559,6 +610,7 @@ class DepsolveTests(unittest.TestCase):
self.tsInfo.addUpdate(po, oldpo=ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, xpo))
txmbrs = self.tsInfo.matchNaevr('zip')
self.assertEquals(0, len(txmbrs))
@@ -575,6 +627,7 @@ class DepsolveTests(unittest.TestCase):
self.tsInfo.addUpdate(po, oldpo=ipo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, xpo))
def testUpdateSinglePackageObsoletesOldRequirement(self):
ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
@@ -593,6 +646,7 @@ class DepsolveTests(unittest.TestCase):
self.tsInfo.addObsoleted(opo, po)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po,))
txmbrs = self.tsInfo.matchNaevr('zip')
self.assertEquals(1, len(txmbrs))
@@ -617,6 +671,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(updatepo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, updatepo))
self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
def testUpdateForConflict2(self):
@@ -631,6 +686,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(updatepo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, updatepo))
self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
def _XXX_testUpdateForConflictProvide(self):
@@ -646,6 +702,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(updatepo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, updatepo))
self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
def testUpdateForConflictProvide2(self):
@@ -664,6 +721,7 @@ class DepsolveTests(unittest.TestCase):
self.xsack.addPackage(updatepo)
self.assertEquals('ok', self.resolveCode())
+ self.assertResult((po, updatepo))
self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
def suite():
commit 1223c51b1a75a517340c9843c3c3a1c103179fbc
Author: Florian Festi <ffesti at redhat.com>
Date: Tue Oct 16 11:08:18 2007 +0200
fix Obsoletes test case
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 2cbba64..7add400 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -6,7 +6,6 @@ from yum import transactioninfo
from yum import packages
from yum import packageSack
-
class FakeConf(object):
def __init__(self):
@@ -586,13 +585,13 @@ class DepsolveTests(unittest.TestCase):
self.rpmdb.addPackage(opo)
po = FakePackage('zsh', '1', '3', None, 'i386')
- ipo.addObsolete('zip', None, (None, None, None))
+ ipo.addObsoletes('zip', None, (None, None, None))
+
+ self.tsInfo.addUpdate(po, oldpo=ipo)
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')
commit 4f62f0b7c6ff0abd0459053001b5506df1669f1b
Author: Florian Festi <ffesti at redhat.com>
Date: Tue Oct 16 10:45:03 2007 +0200
Move tests from assertInstalled/assertNotInstalled to assertResult for better readability
diff --git a/test/operationstests.py b/test/operationstests.py
index d3e187d..6c0568f 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -64,18 +64,31 @@ class OperationsTests(unittest.TestCase):
return res, msg
return self.depsolver.buildTransaction()
- def assertInstalled(self, po, msg=None):
- if (not self.depsolver.tsInfo.getMembersWithState(po.pkgtup, TS_INSTALL_STATES) and # not getting installed
- (not self.depsolver.rpmdb.searchNevra(po.name, po.epoch, po.version, po.release, po.arch) or # not is installed
- self.depsolver.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES))): # getting removed
- self.fail("Package %(pkg)s is not installed!" % {'pkg' : str(po)})
-
-
- def assertNotInstalled(self, po, msg=None):
- if (self.depsolver.tsInfo.getMembersWithState(po.pkgtup, TS_INSTALL_STATES) or # getting installed
- (self.depsolver.rpmdb.searchNevra(po.name, po.epoch, po.version, po.release, po.arch) and # is installed
- not self.depsolver.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES))): # not getting removed
- self.fail((msg or "Package %(pkg)s is installed!") % {'pkg' : str(po)})
+ def assertResult(self, pkgs, optional_pkgs=[], check_multilib_versions=True):
+ errors = ["assertResult:\n"]
+ pkgs = set(pkgs)
+ optional_pkgs = set(optional_pkgs)
+ installed = set()
+
+ for pkg in self.depsolver.rpmdb:
+ # got removed
+ if self.depsolver.tsInfo.getMembersWithState(pkg.pkgtup, TS_REMOVE_STATES):
+ if pkg in pkgs:
+ errors.append("Package %s got removed!\n" % pkg)
+ else: # still installed
+ installed.add(pkg)
+ if pkg not in pkgs and pkg not in optional_pkgs:
+ errors.append("Package %s didn't got removed!\n" % pkg)
+
+ for txmbr in self.depsolver.tsInfo.getMembersWithState(output_states=TS_INSTALL_STATES):
+ installed.add(txmbr.po)
+ if txmbr.po not in pkgs and txmbr.po not in optional_pkgs:
+ errors.append("Package %s got installed!\n" % txmbr.po)
+ for pkg in pkgs - installed:
+ errors.append("Package %s didn't got installed!\n" % pkg)
+
+ if len(errors) > 1:
+ self.fail("".join(errors))
#######################################################################
### Tests #############################################################
@@ -85,98 +98,76 @@ class OperationsTests(unittest.TestCase):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.ii386], [p.ui386, p.ux86_64])
self.assert_(res==2, msg)
- self.assertInstalled(p.ui386)
- self.assertNotInstalled(p.ux86_64)
-
+ self.assertResult((p.ui386,))
def testUpdatei386ToMultilibForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386], [p.ui386, p.ux86_64, p.ru])
self.assert_(res==2, msg)
- #self.assertInstalled(p.ui386)
- #self.assertNotInstalled(p.ux86_64)
- self.assertInstalled(p.ux86_64) # XXX
- self.assertInstalled(p.ru)
+ self.assertResult((p.ii386, p.ux86_64, p.ru))
+ #self.assertResult((p.ui386, p.ru))
def testUpdatex86_64ToMultilib(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.ix86_64], [p.ui386, p.ux86_64])
self.assert_(res==2, msg)
- self.assertInstalled(p.ux86_64)
- self.assertNotInstalled(p.ui386)
-
+ self.assertResult((p.ux86_64,))
def testUpdatex86_64ToMultilibForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'zsh-utils'], [p.ix86_64], [p.ui386, p.ux86_64, p.ru])
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.ix86_64],
+ [p.ui386, p.ux86_64, p.ru])
self.assert_(res==2, msg)
- self.assertInstalled(p.ux86_64)
- self.assertNotInstalled(p.ui386)
- self.assertInstalled(p.ru)
+ self.assertResult((p.ux86_64, p.ru))
def testUpdateMultilibToMultilib(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.ui386, p.ux86_64])
self.assert_(res==2, msg)
- self.assertInstalled(p.ui386)
- self.assertInstalled(p.ux86_64)
-
+ self.assertResult((p.ui386, p.ux86_64))
def testUpdateMultilibToMultilibForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386, p.ix86_64], [p.ui386, p.ux86_64, p.ru])
self.assert_(res==2, msg)
- self.assertInstalled(p.ii386)
- self.assertNotInstalled(p.ix86_64)
- self.assertNotInstalled(p.ui386)
- self.assertInstalled(p.ux86_64)
- self.assertInstalled(p.ru)
+ #self.assertResult((p.ui386, p.ux86_64, p.ru))
+ self.assertResult((p.ii386, p.ux86_64, p.ru))
def testUpdatei386Tonoarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.ii386], [p.unoarch])
self.assert_(res==2, msg)
- self.assertInstalled(p.unoarch)
- self.assertNotInstalled(p.ii386)
-
+ self.assertResult((p.unoarch,))
def testUpdatei386TonoarchForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386], [p.unoarch, p.ru])
self.assert_(res==2, msg)
- self.assertInstalled(p.unoarch)
- #self.assertNotInstalled(p.ii386) # XXX
- self.assertInstalled(p.ru)
+ #self.assertResult((p.unoarch, p.ru))
+ self.assertResult((p.ii386, p.unoarch, p.ru))
def testUpdateMultilibTonoarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.unoarch])
self.assert_(res==2, msg)
- self.assertInstalled(p.unoarch)
- self.assertNotInstalled(p.ii386)
- # self.assertNotInstalled(p.ix86_64) # XXX
-
+ #self.assertResult((p.unoarch,))
+ self.assertResult((p.unoarch, p.ix86_64))
def testUpdateMultilibTonoarchForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386, p.ix86_64], [p.unoarch, p.ru])
self.assert_(res==2, msg)
- self.assertInstalled(p.unoarch)
- #self.assertNotInstalled(p.ii386)
- #self.assertNotInstalled(p.ix86_64)
- self.assertInstalled(p.ru)
+ #self.assertResult((p.unoarch, p.ru))
+ self.assertResult((p.ii386, p.ix86_64, p.unoarch, p.ru))
def testUpdatenoarchToMultilib(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.inoarch], [p.ui386, p.ux86_64])
self.assert_(res==2, msg)
- self.assertInstalled(p.ui386) # ???
- self.assertInstalled(p.ux86_64)
- self.assertNotInstalled(p.inoarch)
-
+ self.assertResult((p.ui386, p.ux86_64))
+ # self.assertResult((p.ux86_64)) # ???
def testUpdatenoarchToMultilibForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'zsh-utils'], [p.inoarch], [p.ui386, p.ux86_64, p.ru])
self.assert_(res==2, msg)
- self.assertNotInstalled(p.ui386) # ???
- self.assertInstalled(p.ux86_64)
- # self.assertNotInstalled(p.inoarch)
- self.assertInstalled(p.ru)
+ # self.assertResult((p.ui386, p.ux86_64, p.ru))
+ # self.assertResult((p.ux86_64, p.ru))
+ self.assertResult((p.inoarch, p.ux86_64, p.ru))
# obsoletes
@@ -184,83 +175,65 @@ class OperationsTests(unittest.TestCase):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.inoarch], [p.oi386, p.ox86_64])
self.assert_(res==2, msg)
- #self.assertNotInstalled(p.oi386)
- self.assertInstalled(p.ox86_64)
- self.assertNotInstalled(p.inoarch)
+ #self.assertResult((p.ox86_64,))
+ self.assertResult((p.oi386, p.ox86_64))
def testObsoletenoarchToMultiarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'], [p.inoarch], [p.oi386, p.ox86_64, p.ro])
+ res, msg = self.runOperation(['install', 'superzippy'], [p.inoarch],
+ [p.oi386, p.ox86_64, p.ro])
self.assert_(res==2, msg)
- self.assertNotInstalled(p.oi386)
- self.assertInstalled(p.ox86_64)
- #self.assertNotInstalled(p.inoarch) # XXX
- self.assertInstalled(p.ro)
+ #self.assertResult((p.ox86_64, p.ro))
+ self.assertResult((p.inoarch, p.ox86_64, p.ro))
def testObsoletei386ToMultiarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.ii386], [p.oi386, p.ox86_64])
self.assert_(res==2, msg)
- self.assertInstalled(p.oi386)
- #self.assertNotInstalled(p.ox86_64)
- self.assertNotInstalled(p.ii386)
+ self.assertResult((p.oi386,))
def testObsoletei386ToMultiarchForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'superzippy'], [p.ii386], [p.oi386, p.ox86_64, p.ro])
self.assert_(res==2, msg)
- #self.assertInstalled(p.oi386)
- #self.assertInstalled(p.ox86_64) # XXX
- #self.assertNotInstalled(p.ii386)
- self.assertInstalled(p.ro)
+ #self.assertResult((p.ox86_64, p.ro))
+ self.assertResult((p.ii386, p.ox86_64, p.ro))
def testObsoletex86_64ToMultiarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.ix86_64], [p.oi386, p.ox86_64])
self.assert_(res==2, msg)
- self.assertInstalled(p.ox86_64)
- #self.assertNotInstalled(p.oi386)
- self.assertNotInstalled(p.ix86_64)
+ self.assertResult((p.ox86_64,))
def testObsoletex86_64ToMultiarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'], [p.ix86_64], [p.oi386, p.ox86_64, p.ro])
+ res, msg = self.runOperation(['install', 'superzippy'],
+ [p.ix86_64], [p.oi386, p.ox86_64, p.ro])
self.assert_(res==2, msg)
- #self.assertInstalled(p.oi386)
- self.assertInstalled(p.ox86_64)
- #self.assertNotInstalled(p.ii386)
- self.assertInstalled(p.ro)
+ #self.assertResult((p.ox86_64, p.ro))
+ self.assertResult((p.ix86_64, p.ox86_64, p.ro))
def testObsoleteMultiarchToMultiarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.oi386, p.ox86_64])
self.assert_(res==2, msg)
- self.assertInstalled(p.oi386)
- self.assertInstalled(p.ox86_64)
- self.assertNotInstalled(p.ii386)
- self.assertNotInstalled(p.ix86_64)
+ self.assertResult((p.oi386, p.ox86_64))
def testObsoleteMultiarchToMultiarchForDependency(self):
p = self.pkgs
- res, msg = self.runOperation(['install', 'superzippy'], [p.ii386, p.ix86_64], [p.oi386, p.ox86_64, p.ro])
+ res, msg = self.runOperation(['install', 'superzippy'],
+ [p.ii386, p.ix86_64], [p.oi386, p.ox86_64, p.ro])
self.assert_(res==2, msg)
- #self.assertInstalled(p.oi386)
- self.assertInstalled(p.ox86_64)
- #self.assertNotInstalled(p.ii386)
- #self.assertNotInstalled(p.ix86_64) # XXX
- self.assertInstalled(p.ro)
+ #self.assertResult((p.oi386, p.ox86_64, p.ro))
+ self.assertResult((p.ii386, p.ix86_64, p.ox86_64, p.ro))
def testObsoleteMultiarchTonoarch(self):
p = self.pkgs
res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.onoarch])
self.assert_(res==2, msg)
- self.assertInstalled(p.onoarch)
- self.assertNotInstalled(p.ii386)
- self.assertNotInstalled(p.ix86_64)
+ self.assertResult((p.onoarch,))
def testObsoleteMultiarchTonoarchForDependency(self):
p = self.pkgs
res, msg = self.runOperation(['install', 'superzippy'], [p.ii386, p.ix86_64], [p.onoarch, p.ro])
self.assert_(res==2, msg)
- self.assertInstalled(p.onoarch)
- #self.assertNotInstalled(p.ii386) # XXX
- #self.assertNotInstalled(p.ix86_64) # XXX
- self.assertInstalled(p.ro)
+ #self.assertResult((p.onoarch, p.ro))
+ self.assertResult((p.ii386, p.ix86_64, p.onoarch, p.ro))
# Obsolete for conflict
@@ -268,12 +241,7 @@ class OperationsTests(unittest.TestCase):
p = self.pkgs
res, msg = self.runOperation(['install', 'super-zippy'], [p.ii386], [p.oi386, p.ox86_64, p.conflict])
self.assert_(res==2, msg)
- self.assertInstalled(p.conflict)
- self.assertInstalled(p.oi386) # XXX ???
- self.assertNotInstalled(p.oi386) # XXX ???
- self.assertInstalled(p.ox86_64)
- self.assertNotInstalled(p.ii386)
-
+ self.assertResult((p.oi386, p.conflict))
def suite():
suite = unittest.TestSuite()
commit ef4ccc9732b609a2a575134ecd102eb3d43301d2
Author: Florian Festi <ffesti at redhat.com>
Date: Thu Oct 11 10:45:13 2007 +0200
Move RpmSack.installed() to PackageSackBase.contains()
Keep now unused RpmSack.installed() for backward compatibility
diff --git a/cli.py b/cli.py
index df85285..f33abd9 100644
--- a/cli.py
+++ b/cli.py
@@ -501,7 +501,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# we look through each returned possibility and rule out the
# ones that we obviously can't use
for pkg in installable:
- if self.rpmdb.installed(po=pkg):
+ if self.rpmdb.contains(po=pkg):
self.verbose_logger.log(yum.logginglevels.INFO_2,
'Package %s is already installed.', pkg)
continue
@@ -1056,7 +1056,7 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# we look through each returned possibility and rule out the
# ones that we obviously can't use
- if self.rpmdb.installed(po=pkg):
+ if self.rpmdb.contains(po=pkg):
self.verbose_logger.log(yum.logginglevels.DEBUG_3,
'Package %s is already installed, skipping', pkg)
return False
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index e316eac..2cbba64 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -25,17 +25,6 @@ class FakeRepo(object):
def __init__(self, id=None):
self.id = id
-
-class FakeRpmSack(packageSack.PackageSack):
- def installed(self, name=None, arch=None, epoch=None, ver=None, rel=None, po=None):
- if po:
- name = po.name
- arch = po.arch
- epoch = po.epoch
- ver = po.version
- rel = po.release
- return len(self.searchNevra(name=name, arch=arch, epoch=epoch, ver=ver, rel=rel)) > 0
-
class FakePackage(packages.YumAvailablePackage):
def __init__(self, name, version, release, epoch, arch, repo=None):
@@ -106,7 +95,7 @@ class DepsolveTests(unittest.TestCase):
def setUp(self):
""" Called at the start of each test. """
self.tsInfo = transactioninfo.TransactionData()
- self.rpmdb = FakeRpmSack()
+ self.rpmdb = packageSack.PackageSack()
self.xsack = packageSack.PackageSack()
self.repo = FakeRepo("installed")
diff --git a/test/operationstests.py b/test/operationstests.py
index 654b9fd..d3e187d 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -1,6 +1,6 @@
import unittest
-from depsolvetests import FakePackage, FakeRpmSack, FakeRepo, FakeConf
+from depsolvetests import FakePackage, FakeRepo, FakeConf
from yum.constants import TS_INSTALL_STATES, TS_REMOVE_STATES
from cli import YumBaseCli
from yum import packageSack
@@ -44,7 +44,7 @@ class OperationsTests(unittest.TestCase):
def runOperation(self, args, installed=[], available=[]):
depsolver = YumBaseCli()
- depsolver.rpmdb = FakeRpmSack()
+ depsolver.rpmdb = packageSack.PackageSack()
depsolver._pkgSack = packageSack.PackageSack()
depsolver.repo = FakeRepo("installed")
depsolver.conf = FakeConf()
diff --git a/yum/__init__.py b/yum/__init__.py
index 182b612..c51024d 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1933,8 +1933,7 @@ class YumBase(depsolve.Depsolve):
continue
# make sure it's not already installed
- if self.rpmdb.installed(name=po.name, arch=po.arch, epoch=po.epoch,
- rel=po.release, ver=po.version):
+ if self.rpmdb.contains(po=po):
self.logger.warning('Package %s already installed and latest version', po)
continue
diff --git a/yum/depsolve.py b/yum/depsolve.py
index 5747a15..cde96f1 100644
--- a/yum/depsolve.py
+++ b/yum/depsolve.py
@@ -275,7 +275,7 @@ class Depsolve(object):
cheater_po = self.cheaterlookup[(needname, needflags, needversion)]
providers = [cheater_po]
- elif self.rpmdb.installed(name=needname):
+ elif self.rpmdb.contains(name=needname):
txmbrs = self.tsInfo.matchNaevr(name=needname)
for txmbr in txmbrs:
providers.append(txmbr.po)
@@ -532,7 +532,7 @@ class Depsolve(object):
best = newest[0]
- if self.rpmdb.installed(po=best): # is it already installed?
+ if self.rpmdb.contains(po=best): # is it already installed?
missingdep = 1
checkdeps = 0
msg = 'Missing Dependency: %s is needed by package %s' % (needname, name)
@@ -951,7 +951,7 @@ class Depsolve(object):
def isPackageInstalled(self, pkgname):
installed = False
- if self.rpmdb.installed(name = pkgname):
+ if self.rpmdb.contains(name=pkgname):
installed = True
lst = self.tsInfo.matchNaevr(name = pkgname)
diff --git a/yum/packageSack.py b/yum/packageSack.py
index ec48403..34f8b2e 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -65,6 +65,17 @@ class PackageSackBase(object):
(n,a,e,v,r) = pkgtup
return self.searchNevra(name=n, arch=a, epoch=e, ver=v, rel=r)
+ def contains(self, name=None, arch=None, epoch=None, ver=None, rel=None, po=None):
+ """return if there are any packages in the sack that match the given NAEVR
+ or the NAEVR of the given po"""
+ if po:
+ name = po.name
+ arch = po.arch
+ epoch = po.epoch
+ ver = po.version
+ rel = po.release
+ return bool(self.searchNevra(name=name, arch=arch, epoch=epoch, ver=ver, rel=rel))
+
def getProvides(self, name, flags=None, version=(None, None, None)):
"""return dict { packages -> list of matching provides }"""
raise NotImplementedError()
diff --git a/yum/rpmsack.py b/yum/rpmsack.py
index 7bd94e6..8866d5e 100644
--- a/yum/rpmsack.py
+++ b/yum/rpmsack.py
@@ -156,16 +156,8 @@ class RPMDBPackageSack(PackageSackBase):
def simplePkgList(self):
return self.pkglist
-
- def installed(self, name=None, arch=None, epoch=None, ver=None, rel=None, po=None):
- if po:
- name = po.name
- arch = po.arch
- epoch = po.epoch
- ver = po.version
- rel = po.release
-
- return len(self.searchNevra(name=name, arch=arch, epoch=epoch, ver=ver, rel=rel)) > 0
+
+ installed = PackageSackBase.contains
def returnNewestByNameArch(self, naTup=None):
commit ff98e98e0ec8f1690e77e924b9ef0c25e614db92
Author: Florian Festi <ffesti at redhat.com>
Date: Wed Oct 10 15:14:20 2007 +0200
More obsolete related test cases: * testObsoletenoarchToMultiarchForDependency * testObsoletei386ToMultiarchForDependency * testObsoletex86_64ToMultiarch * testObsoletex86_64ToMultiarchForDependency * testObsoleteMultiarchToMultiarchForDependency * testObsoleteMultiarchTonoarchForDependency
diff --git a/test/operationstests.py b/test/operationstests.py
index 7db500e..654b9fd 100644
--- a/test/operationstests.py
+++ b/test/operationstests.py
@@ -27,10 +27,16 @@ class OperationsTests(unittest.TestCase):
# obsoletes
self.pkgs.oi386 = FakePackage('zsh-ng', '0.3', '1', '0', 'i386')
self.pkgs.oi386.addObsoletes('zsh', None, (None, None, None))
+ self.pkgs.oi386.addProvides('zzz')
self.pkgs.ox86_64 = FakePackage('zsh-ng', '0.3', '1', '0', 'x86_64')
self.pkgs.ox86_64.addObsoletes('zsh', None, (None, None, None))
+ self.pkgs.ox86_64.addProvides('zzz')
self.pkgs.onoarch = FakePackage('zsh-ng', '0.3', '1', '0', 'noarch')
self.pkgs.onoarch.addObsoletes('zsh', None, (None, None, None))
+ self.pkgs.onoarch.addProvides('zzz')
+ # requires obsoletes
+ self.pkgs.ro = FakePackage('superzippy', '3.5', '3', '0', 'noarch')
+ self.pkgs.ro.addRequires('zzz')
# conflicts
self.pkgs.conflict = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
self.pkgs.conflict.addConflicts('zsh', 'EQ', ('0', '1', '1'))
@@ -181,6 +187,14 @@ class OperationsTests(unittest.TestCase):
#self.assertNotInstalled(p.oi386)
self.assertInstalled(p.ox86_64)
self.assertNotInstalled(p.inoarch)
+ def testObsoletenoarchToMultiarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.inoarch], [p.oi386, p.ox86_64, p.ro])
+ self.assert_(res==2, msg)
+ self.assertNotInstalled(p.oi386)
+ self.assertInstalled(p.ox86_64)
+ #self.assertNotInstalled(p.inoarch) # XXX
+ self.assertInstalled(p.ro)
def testObsoletei386ToMultiarch(self):
p = self.pkgs
@@ -189,6 +203,30 @@ class OperationsTests(unittest.TestCase):
self.assertInstalled(p.oi386)
#self.assertNotInstalled(p.ox86_64)
self.assertNotInstalled(p.ii386)
+ def testObsoletei386ToMultiarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.ii386], [p.oi386, p.ox86_64, p.ro])
+ self.assert_(res==2, msg)
+ #self.assertInstalled(p.oi386)
+ #self.assertInstalled(p.ox86_64) # XXX
+ #self.assertNotInstalled(p.ii386)
+ self.assertInstalled(p.ro)
+
+ def testObsoletex86_64ToMultiarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ix86_64], [p.oi386, p.ox86_64])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.ox86_64)
+ #self.assertNotInstalled(p.oi386)
+ self.assertNotInstalled(p.ix86_64)
+ def testObsoletex86_64ToMultiarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.ix86_64], [p.oi386, p.ox86_64, p.ro])
+ self.assert_(res==2, msg)
+ #self.assertInstalled(p.oi386)
+ self.assertInstalled(p.ox86_64)
+ #self.assertNotInstalled(p.ii386)
+ self.assertInstalled(p.ro)
def testObsoleteMultiarchToMultiarch(self):
p = self.pkgs
@@ -198,6 +236,15 @@ class OperationsTests(unittest.TestCase):
self.assertInstalled(p.ox86_64)
self.assertNotInstalled(p.ii386)
self.assertNotInstalled(p.ix86_64)
+ def testObsoleteMultiarchToMultiarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.ii386, p.ix86_64], [p.oi386, p.ox86_64, p.ro])
+ self.assert_(res==2, msg)
+ #self.assertInstalled(p.oi386)
+ self.assertInstalled(p.ox86_64)
+ #self.assertNotInstalled(p.ii386)
+ #self.assertNotInstalled(p.ix86_64) # XXX
+ self.assertInstalled(p.ro)
def testObsoleteMultiarchTonoarch(self):
p = self.pkgs
@@ -206,6 +253,14 @@ class OperationsTests(unittest.TestCase):
self.assertInstalled(p.onoarch)
self.assertNotInstalled(p.ii386)
self.assertNotInstalled(p.ix86_64)
+ def testObsoleteMultiarchTonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'superzippy'], [p.ii386, p.ix86_64], [p.onoarch, p.ro])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.onoarch)
+ #self.assertNotInstalled(p.ii386) # XXX
+ #self.assertNotInstalled(p.ix86_64) # XXX
+ self.assertInstalled(p.ro)
# Obsolete for conflict
commit aebfd7ec24750a1c6d563a39f58c1c9fcd6b39fe
Author: Florian Festi <ffesti at redhat.com>
Date: Fri Oct 5 14:50:48 2007 +0200
Add operations test suite (some sub tests are still commented out) * testUpdatei386ToMultilib * testUpdatei386ToMultilibForDependency * testUpdatex86_64ToMultilib * testUpdatex86_64ToMultilibForDependency * testUpdateMultilibToMultilib * testUpdateMultilibToMultilibForDependency * testUpdatei386Tonoarch * testUpdatei386TonoarchForDependency * testUpdateMultilibTonoarch * testUpdateMultilibTonoarchForDependency * testUpdatenoarchToMultilib * testUpdatenoarchToMultilibForDependency * testObsoletenoarchToMultiarch * testObsoletei386ToMultiarch * testObsoleteMultiarchToMultiarch * testObsoleteMultiarchTonoarch * _XXX_testObsoleteForConflict - disabled
Make FakePackge a YumAvailablePackage
Add needed attributes to FakeConf
diff --git a/test/alltests.py b/test/alltests.py
index 90f8e12..93eb7b0 100644
--- a/test/alltests.py
+++ b/test/alltests.py
@@ -3,12 +3,13 @@ import settestpath
import depsolvetests
import packagetests
-
+import operationstests
def suite():
# Append all test suites here:
return unittest.TestSuite((
depsolvetests.suite(),
+ operationstests.suite(),
packagetests.suite(),
))
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 9200c9a..e316eac 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -16,7 +16,9 @@ class FakeConf(object):
self.obsoletes = True
self.exactarch = False
self.exactarchlist = []
-
+ self.installroot = '/'
+ self.tsflags = []
+ self.installonly_limit = 0
class FakeRepo(object):
@@ -34,7 +36,7 @@ class FakeRpmSack(packageSack.PackageSack):
rel = po.release
return len(self.searchNevra(name=name, arch=arch, epoch=epoch, ver=ver, rel=rel)) > 0
-class FakePackage(packages.PackageObject, packages.RpmBase):
+class FakePackage(packages.YumAvailablePackage):
def __init__(self, name, version, release, epoch, arch, repo=None):
packages.PackageObject.__init__(self)
diff --git a/test/operationstests.py b/test/operationstests.py
new file mode 100644
index 0000000..7db500e
--- /dev/null
+++ b/test/operationstests.py
@@ -0,0 +1,230 @@
+import unittest
+
+from depsolvetests import FakePackage, FakeRpmSack, FakeRepo, FakeConf
+from yum.constants import TS_INSTALL_STATES, TS_REMOVE_STATES
+from cli import YumBaseCli
+from yum import packageSack
+
+class Container(object):
+ pass
+
+class OperationsTests(unittest.TestCase):
+
+ def __init__(self, methodName='runTest'):
+ unittest.TestCase.__init__(self, methodName)
+ self.pkgs = Container()
+ # installed
+ self.pkgs.ii386 = FakePackage('zsh', '1', '1', '0', 'i386')
+ self.pkgs.ix86_64 = FakePackage('zsh', '1', '1', '0', 'x86_64')
+ self.pkgs.inoarch = FakePackage('zsh', '1', '1', '0', 'noarch')
+ # updates
+ self.pkgs.ui386 = FakePackage('zsh', '2', '1', '0', 'i386')
+ self.pkgs.ux86_64 = FakePackage('zsh', '2', '1', '0', 'x86_64')
+ self.pkgs.unoarch = FakePackage('zsh', '2', '1', '0', 'noarch')
+ # requires update
+ self.pkgs.ru = FakePackage('zsh-utils', '2', '1', '0', 'noarch')
+ self.pkgs.ru.addRequires('zsh', 'EQ', ('0', '2', '1'))
+ # obsoletes
+ self.pkgs.oi386 = FakePackage('zsh-ng', '0.3', '1', '0', 'i386')
+ self.pkgs.oi386.addObsoletes('zsh', None, (None, None, None))
+ self.pkgs.ox86_64 = FakePackage('zsh-ng', '0.3', '1', '0', 'x86_64')
+ self.pkgs.ox86_64.addObsoletes('zsh', None, (None, None, None))
+ self.pkgs.onoarch = FakePackage('zsh-ng', '0.3', '1', '0', 'noarch')
+ self.pkgs.onoarch.addObsoletes('zsh', None, (None, None, None))
+ # conflicts
+ self.pkgs.conflict = FakePackage('super-zippy', '0.3', '1', '0', 'i386')
+ self.pkgs.conflict.addConflicts('zsh', 'EQ', ('0', '1', '1'))
+
+
+ def runOperation(self, args, installed=[], available=[]):
+ depsolver = YumBaseCli()
+ depsolver.rpmdb = FakeRpmSack()
+ depsolver._pkgSack = packageSack.PackageSack()
+ depsolver.repo = FakeRepo("installed")
+ depsolver.conf = FakeConf()
+ depsolver.doLoggingSetup(-1, -1)
+ self.depsolver = depsolver
+
+ for po in installed:
+ po.repoid = po.repo.id = "installed"
+ self.depsolver.rpmdb.addPackage(po)
+ for po in available:
+ self.depsolver._pkgSack.addPackage(po)
+
+ self.depsolver.basecmd = args[0]
+ self.depsolver.extcmds = args[1:]
+ res, msg = self.depsolver.doCommands()
+ if res!=2:
+ return res, msg
+ return self.depsolver.buildTransaction()
+
+ def assertInstalled(self, po, msg=None):
+ if (not self.depsolver.tsInfo.getMembersWithState(po.pkgtup, TS_INSTALL_STATES) and # not getting installed
+ (not self.depsolver.rpmdb.searchNevra(po.name, po.epoch, po.version, po.release, po.arch) or # not is installed
+ self.depsolver.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES))): # getting removed
+ self.fail("Package %(pkg)s is not installed!" % {'pkg' : str(po)})
+
+
+ def assertNotInstalled(self, po, msg=None):
+ if (self.depsolver.tsInfo.getMembersWithState(po.pkgtup, TS_INSTALL_STATES) or # getting installed
+ (self.depsolver.rpmdb.searchNevra(po.name, po.epoch, po.version, po.release, po.arch) and # is installed
+ not self.depsolver.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES))): # not getting removed
+ self.fail((msg or "Package %(pkg)s is installed!") % {'pkg' : str(po)})
+
+ #######################################################################
+ ### Tests #############################################################
+ #######################################################################
+
+ def testUpdatei386ToMultilib(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ii386], [p.ui386, p.ux86_64])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.ui386)
+ self.assertNotInstalled(p.ux86_64)
+
+ def testUpdatei386ToMultilibForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386], [p.ui386, p.ux86_64, p.ru])
+ self.assert_(res==2, msg)
+ #self.assertInstalled(p.ui386)
+ #self.assertNotInstalled(p.ux86_64)
+ self.assertInstalled(p.ux86_64) # XXX
+ self.assertInstalled(p.ru)
+
+ def testUpdatex86_64ToMultilib(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ix86_64], [p.ui386, p.ux86_64])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.ux86_64)
+ self.assertNotInstalled(p.ui386)
+
+ def testUpdatex86_64ToMultilibForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.ix86_64], [p.ui386, p.ux86_64, p.ru])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.ux86_64)
+ self.assertNotInstalled(p.ui386)
+ self.assertInstalled(p.ru)
+
+ def testUpdateMultilibToMultilib(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.ui386, p.ux86_64])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.ui386)
+ self.assertInstalled(p.ux86_64)
+
+ def testUpdateMultilibToMultilibForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386, p.ix86_64], [p.ui386, p.ux86_64, p.ru])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.ii386)
+ self.assertNotInstalled(p.ix86_64)
+ self.assertNotInstalled(p.ui386)
+ self.assertInstalled(p.ux86_64)
+ self.assertInstalled(p.ru)
+
+ def testUpdatei386Tonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ii386], [p.unoarch])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.unoarch)
+ self.assertNotInstalled(p.ii386)
+
+ def testUpdatei386TonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386], [p.unoarch, p.ru])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.unoarch)
+ #self.assertNotInstalled(p.ii386) # XXX
+ self.assertInstalled(p.ru)
+
+ def testUpdateMultilibTonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.unoarch])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.unoarch)
+ self.assertNotInstalled(p.ii386)
+ # self.assertNotInstalled(p.ix86_64) # XXX
+
+ def testUpdateMultilibTonoarchForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.ii386, p.ix86_64], [p.unoarch, p.ru])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.unoarch)
+ #self.assertNotInstalled(p.ii386)
+ #self.assertNotInstalled(p.ix86_64)
+ self.assertInstalled(p.ru)
+
+ def testUpdatenoarchToMultilib(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.inoarch], [p.ui386, p.ux86_64])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.ui386) # ???
+ self.assertInstalled(p.ux86_64)
+ self.assertNotInstalled(p.inoarch)
+
+ def testUpdatenoarchToMultilibForDependency(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'zsh-utils'], [p.inoarch], [p.ui386, p.ux86_64, p.ru])
+ self.assert_(res==2, msg)
+ self.assertNotInstalled(p.ui386) # ???
+ self.assertInstalled(p.ux86_64)
+ # self.assertNotInstalled(p.inoarch)
+ self.assertInstalled(p.ru)
+
+ # obsoletes
+
+ def testObsoletenoarchToMultiarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.inoarch], [p.oi386, p.ox86_64])
+ self.assert_(res==2, msg)
+ #self.assertNotInstalled(p.oi386)
+ self.assertInstalled(p.ox86_64)
+ self.assertNotInstalled(p.inoarch)
+
+ def testObsoletei386ToMultiarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ii386], [p.oi386, p.ox86_64])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.oi386)
+ #self.assertNotInstalled(p.ox86_64)
+ self.assertNotInstalled(p.ii386)
+
+ def testObsoleteMultiarchToMultiarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.oi386, p.ox86_64])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.oi386)
+ self.assertInstalled(p.ox86_64)
+ self.assertNotInstalled(p.ii386)
+ self.assertNotInstalled(p.ix86_64)
+
+ def testObsoleteMultiarchTonoarch(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['update'], [p.ii386, p.ix86_64], [p.onoarch])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.onoarch)
+ self.assertNotInstalled(p.ii386)
+ self.assertNotInstalled(p.ix86_64)
+
+ # Obsolete for conflict
+
+ def _XXX_testObsoleteForConflict(self):
+ p = self.pkgs
+ res, msg = self.runOperation(['install', 'super-zippy'], [p.ii386], [p.oi386, p.ox86_64, p.conflict])
+ self.assert_(res==2, msg)
+ self.assertInstalled(p.conflict)
+ self.assertInstalled(p.oi386) # XXX ???
+ self.assertNotInstalled(p.oi386) # XXX ???
+ self.assertInstalled(p.ox86_64)
+ self.assertNotInstalled(p.ii386)
+
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(OperationsTests))
+ return suite
+
+if __name__ == "__main__":
+ unittest.main(defaultTest="suite")
+
commit 6c3ed24214313d02187eb3a76277ad53dfd8609d
Author: Florian Festi <ffesti at redhat.com>
Date: Fri Oct 5 14:34:18 2007 +0200
Switch depsolving tests to YumBase instead of Depsolver
Add the needed attributes to FakeConf
Add new test cases
* testUpdateForDependency
* testUpdateSplitPackage
* _XXX_testUpdateForConflict - disabled
* testUpdateForConflict2
* _XXX_testUpdateForConflictProvide
* testUpdateForConflictProvide2 - disabled
Minor fix for empty pkgSack (False != None)
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index c2745da..9200c9a 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -1,7 +1,7 @@
import unittest
import settestpath
-from yum import depsolve
+from yum import YumBase
from yum import transactioninfo
from yum import packages
from yum import packageSack
@@ -11,6 +11,11 @@ class FakeConf(object):
def __init__(self):
self.installonlypkgs = []
+ self.exclude = []
+ self.debuglevel = 0
+ self.obsoletes = True
+ self.exactarch = False
+ self.exactarchlist = []
class FakeRepo(object):
@@ -65,10 +70,10 @@ class FakePackage(packages.PackageObject, packages.RpmBase):
self.files[ftype].append(name)
-class TestingDepsolve(depsolve.Depsolve):
+class TestingDepsolve(YumBase):
def __init__(self, tsInfo, rpmdb, pkgSack):
- depsolve.Depsolve.__init__(self)
+ YumBase.__init__(self)
self.conf = FakeConf()
self.tsInfo = tsInfo
@@ -501,6 +506,39 @@ class DepsolveTests(unittest.TestCase):
txmbrs = self.tsInfo.matchNaevr('zsh')
self.assertEquals(2, len(txmbrs))
+ def testUpdateForDependency(self):
+ po = FakePackage('zsh', '1', '1', '0', 'i386')
+ po.addRequires('zip', 'EQ', ('0', '2', '1'))
+ self.tsInfo.addInstall(po)
+
+ installedpo = FakePackage('zip', '1', '1', '0', 'i386')
+ self.rpmdb.addPackage(installedpo)
+
+ updatepo = FakePackage('zip', '2', '1', '0', 'i386')
+ self.xsack.addPackage(updatepo)
+
+ self.assertEquals('ok', self.resolveCode())
+ self.assert_(self.tsInfo.getMembers(updatepo.pkgtup))
+
+ def testUpdateSplitPackage(self):
+ po = FakePackage('zsh', '1', '1', '0', 'i386')
+ po.addRequires('libzip', 'EQ', ('0', '2', '1'))
+ self.tsInfo.addInstall(po)
+
+ installedpo = FakePackage('zip', '1', '1', '0', 'i386')
+ installedpo.addProvides('libzip', 'EQ', ('0', '1', '1'))
+ self.rpmdb.addPackage(installedpo)
+
+ updatepo = FakePackage('zip', '2', '1', '0', 'i386')
+ updatepo.addRequires('zip-libs', 'EQ', ('0', '2', '1'))
+ self.xsack.addPackage(updatepo)
+ updatepo = FakePackage('zip-libs', '2', '1', '0', 'i386')
+ updatepo.addProvides('libzip', 'EQ', ('0', '2', '1'))
+ self.xsack.addPackage(updatepo)
+
+ self.assertEquals('ok', self.resolveCode())
+ self.assert_(self.tsInfo.getMembers(po.pkgtup), "Package not installed")
+
def testUpdateSinglePackageNewRequires(self):
ipo = self.FakeInstPkg('zsh', '1', '1', None, 'i386')
self.rpmdb.addPackage(ipo)
@@ -577,6 +615,66 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals(1, len(txmbrs))
self.assertTrue('e', txmbrs[0].ts_state)
+ def _XXX_testUpdateForConflict(self):
+ po = FakePackage('zsh', '1', '1', '0', 'i386')
+ po.addConflicts('zip', 'LE', ('0', '1', '1'))
+ self.tsInfo.addInstall(po)
+
+ installedpo = FakePackage('zip', '1', '1', '0', 'i386')
+ self.rpmdb.addPackage(installedpo)
+
+ updatepo = FakePackage('zip', '2', '1', '0', 'i386')
+ self.xsack.addPackage(updatepo)
+
+ self.assertEquals('ok', self.resolveCode())
+ self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
+
+ def testUpdateForConflict2(self):
+ po = FakePackage('zsh', '1', '1', '0', 'i386')
+ self.tsInfo.addInstall(po)
+
+ installedpo = FakePackage('zip', '1', '1', '0', 'i386')
+ installedpo.addConflicts('zsh', 'LE', ('0', '1', '1'))
+ self.rpmdb.addPackage(installedpo)
+
+ updatepo = FakePackage('zip', '2', '1', '0', 'i386')
+ self.xsack.addPackage(updatepo)
+
+ self.assertEquals('ok', self.resolveCode())
+ self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
+
+ def _XXX_testUpdateForConflictProvide(self):
+ po = FakePackage('zsh', '1', '1', '0', 'i386')
+ po.addConflicts('zippy', 'LE', ('0', '1', '1'))
+ self.tsInfo.addInstall(po)
+
+ installedpo = FakePackage('zip', '1', '1', '0', 'i386')
+ installedpo.addProvides('zippy', 'EQ', ('0', '1', '1'))
+ self.rpmdb.addPackage(installedpo)
+
+ updatepo = FakePackage('zip', '2', '1', '0', 'i386')
+ self.xsack.addPackage(updatepo)
+
+ self.assertEquals('ok', self.resolveCode())
+ self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
+
+ def testUpdateForConflictProvide2(self):
+ po = FakePackage('zsh', '1', '1', '0', 'i386')
+ po.addProvides('zippy', 'EQ', ('0', '2', '1'))
+ self.tsInfo.addInstall(po)
+
+ installedpo = FakePackage('zip', '1', '1', '0', 'i386')
+ installedpo.addConflicts('zippy', 'GT', ('0', '1', '1'))
+ installedpo.addConflicts('zippy', 'LT', ('0', '1', '1'))
+ self.rpmdb.addPackage(installedpo)
+
+ updatepo = FakePackage('zip', '2', '1', '0', 'i386')
+ updatepo.addConflicts('zippy', 'GT', ('0', '2', '1'))
+ updatepo.addConflicts('zippy', 'LT', ('0', '2', '1'))
+ self.xsack.addPackage(updatepo)
+
+ self.assertEquals('ok', self.resolveCode())
+ self.assert_(self.tsInfo.getMembers(updatepo.pkgtup), "Not updated")
def suite():
suite = unittest.TestSuite()
diff --git a/yum/__init__.py b/yum/__init__.py
index 056a330..182b612 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -359,7 +359,7 @@ class YumBase(depsolve.Depsolve):
"""populates the package sacks for information from our repositories,
takes optional archlist for archs to include"""
- if self._pkgSack and thisrepo is None:
+ if self._pkgSack is not None and thisrepo is None:
self.verbose_logger.log(logginglevels.DEBUG_4,
'skipping reposetup, pkgsack exists')
return self._pkgSack
commit 2cd76ab829325ed423d5ec56ff20d712999a4a35
Author: Florian Festi <ffesti at redhat.com>
Date: Mon Oct 1 14:51:46 2007 +0200
Use a more defensive path order
diff --git a/test/settestpath.py b/test/settestpath.py
index 835d935..1cbcdce 100644
--- a/test/settestpath.py
+++ b/test/settestpath.py
@@ -2,6 +2,6 @@ import sys
# Adjust path so we can see the src modules running from branch as well
# as test dir:
-sys.path.insert(0, './')
-sys.path.insert(0, '../')
sys.path.insert(0, '../../')
+sys.path.insert(0, '../')
+sys.path.insert(0, './')
commit 3be21b20a8cc01c726e96842f632353b70866b09
Author: Florian Festi <ffesti at redhat.com>
Date: Mon Oct 1 14:51:06 2007 +0200
Add defaults to FakePackage.add*
Use "EQ" instead of "="
FakePackage.addFile()
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 56686e2..c2745da 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -43,7 +43,7 @@ class FakePackage(packages.PackageObject, packages.RpmBase):
self.epoch = epoch
self.arch = arch
- self.prco['provides'].append((name, '=', (epoch, version, release)))
+ self.prco['provides'].append((name, 'EQ', (epoch, version, release)))
if repo is None:
repo = FakeRepo()
@@ -53,14 +53,16 @@ class FakePackage(packages.PackageObject, packages.RpmBase):
# 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):
+ def addProvides(self, name, flag=None, evr=(None, None, None)):
+ self.prco['provides'].append((name, flag, evr))
+ def addRequires(self, name, flag=None, evr=(None, None, None)):
self.prco['requires'].append((name, flag, evr))
- def addConflict(self, name, flag, evr):
+ def addConflicts(self, name, flag=None, evr=(None, None, None)):
self.prco['conflicts'].append((name, flag, evr))
- def addObsolete(self, name, flag, evr):
+ def addObsoletes(self, name, flag=None, evr=(None, None, None)):
self.prco['obsoletes'].append((name, flag, evr))
+ def addFile(self, name, ftype='file'):
+ self.files[ftype].append(name)
class TestingDepsolve(depsolve.Depsolve):
commit de9909c1d4207480efc8c45a8a5cc0e91a37c02d
Author: Florian Festi <ffesti at redhat.com>
Date: Fri Oct 5 14:23:46 2007 +0200
Really implement FakeRpmSack.installed()
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 6b3badc..56686e2 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -20,9 +20,14 @@ class FakeRepo(object):
class FakeRpmSack(packageSack.PackageSack):
- def installed(self, po):
- """ Hack. Hack. Hack. """
- return False
+ def installed(self, name=None, arch=None, epoch=None, ver=None, rel=None, po=None):
+ if po:
+ name = po.name
+ arch = po.arch
+ epoch = po.epoch
+ ver = po.version
+ rel = po.release
+ return len(self.searchNevra(name=name, arch=arch, epoch=epoch, ver=ver, rel=rel)) > 0
class FakePackage(packages.PackageObject, packages.RpmBase):
commit d9950f57c0389874760e1d680462f23d43ebfb08
Author: Florian Festi <ffesti at redhat.com>
Date: Thu Oct 4 10:56:03 2007 +0200
Adjust test case to the now fixed PackageSack: There now is one "remove" transaction member as the "zip" package now is updated instead of just installed
diff --git a/test/depsolvetests.py b/test/depsolvetests.py
index 37f5c73..6b3badc 100644
--- a/test/depsolvetests.py
+++ b/test/depsolvetests.py
@@ -374,15 +374,18 @@ class DepsolveTests(unittest.TestCase):
self.assertEquals('ok', self.resolveCode())
txmbrs = self.tsInfo.matchNaevr()
- self.assertEquals(3, len(txmbrs))
+ self.assertEquals(4, 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(2, len(txmbrs))
self.assertEquals(('zip', 'i386', '4', '2.6', '8'), txmbrs[0].pkgtup)
+ self.assertEquals(txmbrs[0].ts_state, 'u')
+ self.assertEquals(('zip', 'i386', '2', '1.3', '4'), txmbrs[1].pkgtup)
+ self.assertEquals(txmbrs[1].ts_state, None)
txmbrs = self.tsInfo.matchNaevr('zsh')
self.assertEquals(1, len(txmbrs))
commit 406a7bd0b74cca885d48daacd8246ad6023e08e2
Author: Florian Festi <ffesti at redhat.com>
Date: Thu Oct 4 10:50:18 2007 +0200
Add support searching only for some parts of the pkgtup in PackageSack.searchNevra
diff --git a/yum/packageSack.py b/yum/packageSack.py
index 41b10df..ec48403 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -441,8 +441,23 @@ class PackageSack(PackageSackBase):
self._checkIndexes(failure='build')
if self.nevra.has_key((name, epoch, ver, rel, arch)):
return self.nevra[(name, epoch, ver, rel, arch)]
- else:
- return []
+ elif name is not None:
+ pkgs = self.nevra.get((name, None, None, None, None), [])
+ else:
+ pkgs = []
+ for pkgsbyRepo in self.pkgsByRepo.itervalues():
+ pkgs.extend(pkgsbyRepo)
+
+ result = [ ]
+ for po in pkgs:
+ if ((name and name!=po.name) or
+ (epoch and epoch!=po.epoch) or
+ (ver and ver!=po.ver) or
+ (rel and re!=po.rel) or
+ (arch and arch!=po.arch)):
+ continue
+ result.append(po)
+ return result
def getProvides(self, name, flags=None, version=(None, None, None)):
"""return dict { packages -> list of matching provides }"""
commit 2f39b512356436d591fdb7ce03aa2a32afbb7c3d
Author: Florian Festi <ffesti at redhat.com>
Date: Fri Oct 5 13:32:58 2007 +0200
Add newest parameter to all .returnObsoletes() methods - either by supporting it or by raising a NotImplementedError if set to True
diff --git a/yum/packageSack.py b/yum/packageSack.py
index 72b35bf..41b10df 100644
--- a/yum/packageSack.py
+++ b/yum/packageSack.py
@@ -89,7 +89,7 @@ class PackageSackBase(object):
"""return list of package obsoleting the name (any evr and flag)"""
raise NotImplementedError()
- def returnObsoletes(self):
+ def returnObsoletes(self, newest=False):
"""returns a dict of obsoletes dict[obsoleting pkgtuple] = [list of obs]"""
raise NotImplementedError()
@@ -500,7 +500,7 @@ class PackageSack(PackageSackBase):
else:
return []
- def returnObsoletes(self):
+ def returnObsoletes(self, newest=False):
"""returns a dict of obsoletes dict[obsoleting pkgtuple] = [list of obs]"""
obs = {}
for po in self.returnPackages():
@@ -511,6 +511,19 @@ class PackageSack(PackageSackBase):
obs[po.pkgtup] = po.obsoletes
else:
obs[po.pkgtup].extend(po.obsoletes)
+
+ if not newest:
+ return obs
+
+ # FIXME - this is slooooooooooooooooooooooooooooooow
+ # get the dict back
+ newest_tups = set((pkg.pkgtup for pkg in self.returnNewestByName()))
+
+ # go through each of the keys of the obs dict and see if it is in the
+ # sack of newest pkgs - if it is not - remove the entry
+ for obstup in obs.iterkeys():
+ if obstup not in newest_tups:
+ del obs[obstup]
return obs
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 9740f95..df03c08 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -394,7 +394,10 @@ class YumSqlitePackageSack(yumRepo.YumPackageSack):
return result
- def returnObsoletes(self):
+ def returnObsoletes(self, newest=False):
+ if newest:
+ raise NotImplementedError()
+
obsoletes = {}
for (rep,cache) in self.primarydb.items():
cur = cache.cursor()
More information about the Yum-cvs-commits
mailing list