qubes/tests/run: Fix running foregin TestCases
This is needed, because when tests fail to load, unittest module generates artificial „LoadTestsFailure” class -- not based on our QubesTestCase, so it does not have .log attribute.
This commit is contained in:
parent
13b1a7201a
commit
66475e5ca7
@ -91,6 +91,12 @@ class QubesTestResult(unittest.TestResult):
|
||||
return '{color[bold]}{}{color[normal]}'.format(
|
||||
err[0].__name__, color=self.color)
|
||||
|
||||
def get_log(self, test):
|
||||
try:
|
||||
return test.log
|
||||
except AttributeError:
|
||||
return self.log
|
||||
|
||||
def getDescription(self, test): # pylint: disable=invalid-name
|
||||
teststr = str(test).split('/')
|
||||
for i in range(-2, 0):
|
||||
@ -112,7 +118,7 @@ class QubesTestResult(unittest.TestResult):
|
||||
|
||||
def startTest(self, test): # pylint: disable=invalid-name
|
||||
super(QubesTestResult, self).startTest(test)
|
||||
test.log.critical('started')
|
||||
self.get_log(test).critical('started')
|
||||
if self.showAll:
|
||||
if not qubes.tests.in_git:
|
||||
self.stream.write('{}: '.format(self.hostname))
|
||||
@ -122,7 +128,7 @@ class QubesTestResult(unittest.TestResult):
|
||||
|
||||
def addSuccess(self, test): # pylint: disable=invalid-name
|
||||
super(QubesTestResult, self).addSuccess(test)
|
||||
test.log.warning('ok')
|
||||
self.get_log(test).warning('ok')
|
||||
if self.showAll:
|
||||
self.stream.writeln('{color[green]}ok{color[normal]}'.format(
|
||||
color=self.color))
|
||||
@ -132,8 +138,8 @@ class QubesTestResult(unittest.TestResult):
|
||||
|
||||
def addError(self, test, err): # pylint: disable=invalid-name
|
||||
super(QubesTestResult, self).addError(test, err)
|
||||
test.log.critical('ERROR ({err[0].__name__}: {err[1]!r})'.format(
|
||||
err=err))
|
||||
self.get_log(test).critical(
|
||||
'ERROR ({err[0].__name__}: {err[1]!r})'.format(err=err))
|
||||
if self.showAll:
|
||||
self.stream.writeln(
|
||||
'{color[red]}{color[bold]}ERROR{color[normal]} ({})'.format(
|
||||
@ -146,7 +152,8 @@ class QubesTestResult(unittest.TestResult):
|
||||
|
||||
def addFailure(self, test, err): # pylint: disable=invalid-name
|
||||
super(QubesTestResult, self).addFailure(test, err)
|
||||
test.log.error('FAIL ({err[0].__name__}: {err[1]!r})'.format(err=err))
|
||||
self.get_log(test).error(
|
||||
'FAIL ({err[0].__name__}: {err[1]!r})'.format(err=err))
|
||||
if self.showAll:
|
||||
self.stream.writeln('{color[red]}FAIL{color[normal]}'.format(
|
||||
color=self.color))
|
||||
@ -157,7 +164,7 @@ class QubesTestResult(unittest.TestResult):
|
||||
|
||||
def addSkip(self, test, reason): # pylint: disable=invalid-name
|
||||
super(QubesTestResult, self).addSkip(test, reason)
|
||||
test.log.warning('skipped ({})'.format(reason))
|
||||
self.get_log(test).warning('skipped ({})'.format(reason))
|
||||
if self.showAll:
|
||||
self.stream.writeln(
|
||||
'{color[cyan]}skipped{color[normal]} ({})'.format(
|
||||
@ -169,7 +176,7 @@ class QubesTestResult(unittest.TestResult):
|
||||
|
||||
def addExpectedFailure(self, test, err): # pylint: disable=invalid-name
|
||||
super(QubesTestResult, self).addExpectedFailure(test, err)
|
||||
test.log.warning('expected failure')
|
||||
self.get_log(test).warning('expected failure')
|
||||
if self.showAll:
|
||||
self.stream.writeln(
|
||||
'{color[yellow]}expected failure{color[normal]}'.format(
|
||||
@ -181,7 +188,7 @@ class QubesTestResult(unittest.TestResult):
|
||||
|
||||
def addUnexpectedSuccess(self, test): # pylint: disable=invalid-name
|
||||
super(QubesTestResult, self).addUnexpectedSuccess(test)
|
||||
test.log.error('unexpected success')
|
||||
self.get_log(test).error('unexpected success')
|
||||
if self.showAll:
|
||||
self.stream.writeln(
|
||||
'{color[yellow]}{color[bold]}unexpected success'
|
||||
|
Loading…
Reference in New Issue
Block a user