[yum-commits] Branch 'yum-3_2_X' - 2 commits - test/skipbroken-tests.py test/testbase.py yum/__init__.py
Tim Lauridsen
timlau at osuosl.org
Tue Nov 9 05:37:40 UTC 2010
test/skipbroken-tests.py | 19 ++++++++++++++++++-
test/testbase.py | 12 +++++++-----
yum/__init__.py | 16 ++++++++++------
3 files changed, 35 insertions(+), 12 deletions(-)
New commits:
commit 8f316cf1d9f04203d2a3f7445089a1a2ddc24d53
Merge: 35d04e2... 4f3577f...
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Tue Nov 9 06:37:19 2010 +0100
Merge branch 'yum-3_2_X' of ssh://yum.baseurl.org/srv/projects/yum/git/yum into yum-3_2_X
commit 35d04e27d65dc87f293c10bf4b90d8988f5170a0
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Fri Nov 5 08:08:28 2010 +0100
- Make downgrade testcase
- fix test DepsolveProgressCallback to handle downgrade
- fix skip-broken code to handle downgrades
- prefix all skipbroken debug message with 'SKIPBROKEN:' for easier filtering
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index c1d0c1f..9f09e87 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -598,7 +598,24 @@ class SkipBrokenTests(DepsolveTests):
self.tsInfo.addUpdate(u1, oldpo=i2)
self.assertEquals('empty', *self.resolveCode(skip=True))
self.assertResult([i1,i2])
-
+
+ def testDowngrade1(self):
+ '''
+ bar require foolib=2.0 provided by foo-1.2
+ foo-1.2 is downgraded to foo-1.1 there only contains foolib=1.0
+ so bar requirement is broken and the downgrade should be removed from
+ transaction
+ '''
+ i1 = self.instPackage('foo', '1.2')
+ i1.addProvides('foolib', 'EQ', ('0', '2', '0'))
+ i2 = self.instPackage('bar', '1.0')
+ i2.addRequires('foolib', 'EQ', ('0', '2', '0'))
+ d1 = self.repoPackage('foo', '1.1')
+ d1.addProvides('foolib', 'EQ', ('0', '1', '0'))
+ self.tsInfo.addDowngrade(d1, oldpo=i1)
+ self.assertEquals('empty', *self.resolveCode(skip=True))
+ self.assertResult([i1, i2])
+
def testMissingfileReqIptabes(self):
'''
diff --git a/test/testbase.py b/test/testbase.py
index 81591ad..d0a15ad 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -131,15 +131,17 @@ class DepSolveProgressCallBack:
def pkgAdded(self, pkgtup, mode):
modedict = { 'i': _('installed'),
- 'u': _('updated'),
- 'od': _('obsoleted'),
- 'o': _('obsoleting'),
+ 'u': _('an update'),
'e': _('erased'),
- 'ud':_('update'),}
+ 'r': _('reinstalled'),
+ 'd': _('a downgrade'),
+ 'o': _('obsoleting'),
+ 'ud': _('updated'),
+ 'od': _('obsoleted'),}
(n, a, e, v, r) = pkgtup
modeterm = modedict[mode]
self.verbose_logger.log(logginglevels.INFO_2,
- _('---> Package %s.%s %s:%s-%s set to be %s'), n, a, e, v, r,
+ _('---> Package %s.%s %s:%s-%s will be %s'), n, a, e, v, r,
modeterm)
def start(self):
diff --git a/yum/__init__.py b/yum/__init__.py
index 234b599..11e019a 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1057,7 +1057,7 @@ class YumBase(depsolve.Depsolve):
# and skip-broken shouldn't care too much about speed.
self.rpmdb.transactionReset()
self.installedFileRequires = None # Kind of hacky
- self.verbose_logger.debug(_("Skip-broken round %i"), count)
+ self.verbose_logger.debug("SKIPBROKEN: ########### Round %i ################" , count)
self._printTransaction()
depTree = self._buildDepTree()
startTs = set(self.tsInfo)
@@ -1114,7 +1114,7 @@ class YumBase(depsolve.Depsolve):
self._checkUpdatedLeftovers() # Cleanup updated leftovers
rescode, restring = self.resolveDeps()
if rescode != 1:
- self.verbose_logger.debug(_("Skip-broken took %i rounds "), count)
+ self.verbose_logger.debug("SKIPBROKEN: took %i rounds ", count)
self.verbose_logger.info(_('\nPackages skipped because of dependency problems:'))
skipped_list = [p for p in skipped_po]
skipped_list.sort()
@@ -1228,14 +1228,14 @@ class YumBase(depsolve.Depsolve):
TS_AVAILABLE : "available",
TS_UPDATED : "updated"}
- self.verbose_logger.log(logginglevels.DEBUG_2,"TSINFO: Current Transaction : %i member(s) " % len(self.tsInfo))
+ self.verbose_logger.log(logginglevels.DEBUG_2,"SKIPBROKEN: Current Transaction : %i member(s) " % len(self.tsInfo))
for txmbr in sorted(self.tsInfo):
- msg = " %-11s : %s " % (state[txmbr.output_state],txmbr.po)
+ msg = "SKIPBROKEN: %-11s : %s " % (state[txmbr.output_state],txmbr.po)
self.verbose_logger.log(logginglevels.DEBUG_2, msg)
for po,rel in sorted(txmbr.relatedto):
- msg = " %s : %s" % (rel,po)
+ msg = "SKIPBROKEN: %s : %s" % (rel,po)
self.verbose_logger.log(logginglevels.DEBUG_2, msg)
-
+ self.verbose_logger.log(logginglevels.DEBUG_2,"SKIPBROKEN:%s" % (60 * "="))
def _getPackagesToRemove(self,po,deptree,toRemove):
'''
@@ -1246,6 +1246,10 @@ class YumBase(depsolve.Depsolve):
for pkg in (txmbr.updates + txmbr.obsoletes):
toRemove.add(pkg)
self._getDepsToRemove(pkg, deptree, toRemove)
+ # Remove related packages
+ for (relative, relation) in txmbr.relatedto:
+ toRemove.add(relative)
+ self._getDepsToRemove(relative, deptree, toRemove)
self._getDepsToRemove(po, deptree, toRemove)
def _getDepsToRemove(self,po, deptree, toRemove):
More information about the Yum-commits
mailing list