From 4151feb65c5f05771ac1e78d187b7304acd59695 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Sat, 19 Mar 2016 06:52:51 -0500 Subject: [PATCH] Log inner_exception in test runs Just like in nodepool, it's useful to get the actual traceback in the output for inner exceptions when you hit an exception in a test case. Change-Id: I1d5723390772011a1ba290596c2b0d13e9431fcc --- shade/exc.py | 4 ++++ shade/tests/unit/base.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/shade/exc.py b/shade/exc.py index ed102dd5d..39e742f61 100644 --- a/shade/exc.py +++ b/shade/exc.py @@ -21,6 +21,8 @@ log = _log.setup_logging(__name__) class OpenStackCloudException(Exception): + log_inner_exceptions = False + def __init__(self, message, extra_data=None): args = [message] if extra_data: @@ -44,6 +46,8 @@ class OpenStackCloudException(Exception): message = "%s (Inner Exception: %s)" % ( message, str(self.inner_exception[1])) + if self.log_inner_exceptions: + self.log_error() return message diff --git a/shade/tests/unit/base.py b/shade/tests/unit/base.py index 2c7e57f43..0461a62ce 100644 --- a/shade/tests/unit/base.py +++ b/shade/tests/unit/base.py @@ -40,3 +40,7 @@ class TestCase(base.TestCase): self.sleep_fixture = self.useFixture(fixtures.MonkeyPatch( 'time.sleep', _nosleep)) + # Getting the inner exceptions in the test log is super useful + self.useFixture(fixtures.MonkeyPatch( + 'shade.exc.OpenStackCloudException.log_inner_exceptions', + True))