Fix integration test exception handling
Under 9ec134996a
the exception
handling of the test_runners was changed to do a bare
raise of the original test failing exception. This was
done to preserve the original traceback. This had the
unintended side effect of allowing exceptions in the error
handling and log reporting code to be raised as the test
case failing exception.
This commit fixes the exception handling to save off the
exc_info and re-raise the original exception with original
traceback.
Change-Id: I13bcf194bb289749ec289216f2541d4923f5f2bf
This commit is contained in:
parent
f6c3c27a49
commit
c4c0083f26
@ -251,8 +251,10 @@ def run_main(test_importer):
|
||||
# Turn off the following "feature" of the unittest module in case
|
||||
# we want to start a REPL.
|
||||
sys.exit = lambda x: None
|
||||
|
||||
print("Integration tests are temporarily disabled")
|
||||
return 0
|
||||
|
||||
proboscis.TestProgram(argv=nose_args, groups=groups, config=c,
|
||||
testRunner=MAIN_RUNNER).run_and_exit()
|
||||
sys.stdout = sys.__stdout__
|
||||
|
@ -20,6 +20,7 @@ import netaddr
|
||||
import os
|
||||
import proboscis
|
||||
import six
|
||||
import sys
|
||||
import time as timer
|
||||
import types
|
||||
|
||||
@ -249,6 +250,7 @@ class LogOnFail(type):
|
||||
except proboscis.SkipTest:
|
||||
raise
|
||||
except Exception:
|
||||
(extype, exvalue, extb) = sys.exc_info()
|
||||
msg_prefix = "*** LogOnFail: "
|
||||
if inst_ids:
|
||||
report.log(msg_prefix + "Exception detected, "
|
||||
@ -276,7 +278,7 @@ class LogOnFail(type):
|
||||
|
||||
# Only report on the first error that occurs
|
||||
mcs.reset_inst_ids()
|
||||
raise
|
||||
six.reraise(extype, exvalue, extb)
|
||||
|
||||
return wrapper
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user