[yum-commits] Branch 'yum-3_2_X' - test/skipbroken-tests.py test/testbase.py
Tim Lauridsen
timlau at osuosl.org
Wed Oct 29 07:51:25 UTC 2008
test/skipbroken-tests.py | 40 ++++++++++++++++++++++++++-
test/testbase.py | 69 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 108 insertions(+), 1 deletion(-)
New commits:
commit 923c037cb78a703060780fcca94b0d199f49d550
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date: Wed Oct 29 08:51:10 2008 +0100
Added depsolve callbacks to skipbroken tests, to get better output if a test fails
diff --git a/test/skipbroken-tests.py b/test/skipbroken-tests.py
index 977a0c2..e2e88b2 100644
--- a/test/skipbroken-tests.py
+++ b/test/skipbroken-tests.py
@@ -384,6 +384,44 @@ class SkipBrokenTests(DepsolveTests):
self.assertEquals('ok', *self.resolveCode(skip=True))
self.assertResult([po1,po2,po3])
+
+ def testInstalledFail(self):
+ """
+ """
+ a1 = self.instPackage('a', '1', arch='x86_64')
+ a1.addProvides("liba.so.1()(64bit)")
+ a2 = self.repoPackage('a', '2', arch='x86_64')
+ a2.addProvides("liba.so.2()(64bit)")
+
+ b1 = self.instPackage('b', '1', arch='x86_64')
+ b1.addProvides("libb.so.1()(64bit)")
+ b2 = self.repoPackage('b', '2', arch='x86_64')
+ b2.addProvides("libb.so.2()(64bit)")
+
+ c1 = self.instPackage('c', '1', arch='x86_64')
+ c1.addRequires("liba.so.1()(64bit)")
+ c2 = self.repoPackage('c', '2', arch='x86_64')
+ c2.addRequires("liba.so.2()(64bit)")
+
+ d1 = self.instPackage('d', '1', arch='x86_64')
+ d1.addRequires("libb.so.1()(64bit)")
+ d2 = self.repoPackage('d', '2', arch='x86_64')
+ d2.addRequires("libb.so.1()(64bit)")
+
+ e1 = self.instPackage('e', '1', arch='x86_64')
+ e2 = self.repoPackage('e', '2', arch='x86_64')
+
+ f1 = self.instPackage('f', '1', arch='x86_64')
+ f2 = self.repoPackage('f', '2', arch='x86_64')
+
+ self.tsInfo.addUpdate(a2, oldpo=a1)
+ self.tsInfo.addUpdate(b2, oldpo=b1)
+ self.tsInfo.addUpdate(c2, oldpo=c1)
+ self.tsInfo.addUpdate(d2, oldpo=d1)
+ self.tsInfo.addUpdate(e2, oldpo=e1)
+ self.tsInfo.addUpdate(f2, oldpo=f1)
+ self.assertEquals('err', *self.resolveCode(skip=False))
+ #self.assertResult([a2,b2,c2,d2,e2,f2])
def resolveCode(self,skip = False):
solver = YumBase()
@@ -392,6 +430,7 @@ class SkipBrokenTests(DepsolveTests):
solver.tsInfo = solver._tsInfo = self.tsInfo
solver.rpmdb = self.rpmdb
solver.pkgSack = self.xsack
+ solver.dsCallback = DepSolveProgressCallBack()
for po in self.rpmdb:
po.repoid = po.repo.id = "installed"
@@ -415,4 +454,3 @@ def setup_logging():
verbose.propagate = False
verbose.addHandler(console_stdout)
verbose.setLevel(2)
-
diff --git a/test/testbase.py b/test/testbase.py
index ccab847..51224bc 100644
--- a/test/testbase.py
+++ b/test/testbase.py
@@ -3,6 +3,8 @@ import sys
import unittest
import settestpath
+import logging
+import yum.logginglevels as logginglevels
new_behavior = "NEW_BEHAVIOR" in os.environ.keys()
@@ -19,6 +21,10 @@ from rpmUtils import arch
### Helper classes ##########################################
#############################################################
+# Dummy translation wrapper
+def _(msg):
+ return msg
+
class FakeConf(object):
def __init__(self):
@@ -81,6 +87,65 @@ class _Container(object):
pass
+class DepSolveProgressCallBack:
+ """provides text output callback functions for Dependency Solver callback"""
+
+ def __init__(self):
+ """requires yum-cli log and errorlog functions as arguments"""
+ self.verbose_logger = logging.getLogger("yum.verbose.cli")
+ self.loops = 0
+
+ def pkgAdded(self, pkgtup, mode):
+ modedict = { 'i': _('installed'),
+ 'u': _('updated'),
+ 'o': _('obsoleted'),
+ 'e': _('erased')}
+ (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,
+ modeterm)
+
+ def start(self):
+ self.loops += 1
+
+ def tscheck(self):
+ self.verbose_logger.log(logginglevels.INFO_2, _('--> Running transaction check'))
+
+ def restartLoop(self):
+ self.loops += 1
+ self.verbose_logger.log(logginglevels.INFO_2,
+ _('--> Restarting Dependency Resolution with new changes.'))
+ self.verbose_logger.debug('---> Loop Number: %d', self.loops)
+
+ def end(self):
+ self.verbose_logger.log(logginglevels.INFO_2,
+ _('--> Finished Dependency Resolution'))
+
+
+ def procReq(self, name, formatted_req):
+ self.verbose_logger.log(logginglevels.INFO_2,
+ _('--> Processing Dependency: %s for package: %s'), formatted_req,
+ name)
+
+
+ def unresolved(self, msg):
+ self.verbose_logger.log(logginglevels.INFO_2, _('--> Unresolved Dependency: %s'),
+ msg)
+
+
+ def procConflict(self, name, confname):
+ self.verbose_logger.log(logginglevels.INFO_2,
+ _('--> Processing Conflict: %s conflicts %s'), name, confname)
+
+ def transactionPopulation(self):
+ self.verbose_logger.log(logginglevels.INFO_2, _('--> Populating transaction set '
+ 'with selected packages. Please wait.'))
+
+ def downloadHeader(self, name):
+ self.verbose_logger.log(logginglevels.INFO_2, _('---> Downloading header for %s '
+ 'to pack into transaction set.'), name)
+
#######################################################################
### Abstract super class for test cases ###############################
#######################################################################
@@ -179,6 +244,10 @@ class DepsolveTests(_DepsolveTestsBase):
# XXX this side-affect is hacky:
self.tsInfo.setDatabases(self.rpmdb, self.xsack)
+ def resetTsInfo(self):
+ self.tsInfo = transactioninfo.TransactionData()
+
+
def resolveCode(self):
solver = YumBase()
solver.conf = FakeConf()
More information about the Yum-commits
mailing list