diff options
author | Paul Glass <paul.glass@rackspace.com> | 2016-02-15 20:28:55 +0000 |
---|---|---|
committer | Paul Glass <paul.glass@rackspace.com> | 2016-02-15 20:29:34 +0000 |
commit | 0c58fc7c4a961e3156ac87a5346eb19af1278c9e (patch) | |
tree | ec872f760c3770c59e000f5c7c3df86e9c6b4626 /designateclient | |
parent | e9e6ab9e8997ddf70900375be4049ace7b5b395d (diff) | |
download | python-designateclient-0c58fc7c4a961e3156ac87a5346eb19af1278c9e.tar.gz |
Log stacktraces of MultipleExceptions in functionaltests
Change-Id: I479bdb59d06c561c49ae63d8bcbe2e5c8f67577a
Diffstat (limited to 'designateclient')
-rw-r--r-- | designateclient/functionaltests/v2/fixtures.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/designateclient/functionaltests/v2/fixtures.py b/designateclient/functionaltests/v2/fixtures.py index 5e08bee..54c3daa 100644 --- a/designateclient/functionaltests/v2/fixtures.py +++ b/designateclient/functionaltests/v2/fixtures.py @@ -14,9 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. """ from __future__ import absolute_import +from __future__ import print_function +import sys +import traceback import fixtures from tempest_lib.exceptions import CommandFailed +from testtools.runtest import MultipleExceptions from designateclient.functionaltests.client import DesignateCLI @@ -30,6 +34,20 @@ class BaseFixture(fixtures.Fixture): self.kwargs = kwargs self.client = DesignateCLI.as_user(user) + def setUp(self): + # Sometimes, exceptions are raised in _setUp methods on fixtures. + # testtools pushes the exception into a MultipleExceptions object along + # with an artificial SetupError, which produces bad error messages. + # This just logs those stack traces to stderr for easier debugging. + try: + super(BaseFixture, self).setUp() + except MultipleExceptions as e: + for i, exc_info in enumerate(e.args): + print('--- printing MultipleExceptions traceback {} of {} ---' + .format(i + 1, len(e.args)), file=sys.stderr) + traceback.print_exception(*exc_info) + raise + class ZoneFixture(BaseFixture): """See DesignateCLI.zone_create for __init__ args""" |