summaryrefslogtreecommitdiff
path: root/designateclient
diff options
context:
space:
mode:
authorPaul Glass <paul.glass@rackspace.com>2016-02-15 20:28:55 +0000
committerPaul Glass <paul.glass@rackspace.com>2016-02-15 20:29:34 +0000
commit0c58fc7c4a961e3156ac87a5346eb19af1278c9e (patch)
treeec872f760c3770c59e000f5c7c3df86e9c6b4626 /designateclient
parente9e6ab9e8997ddf70900375be4049ace7b5b395d (diff)
downloadpython-designateclient-0c58fc7c4a961e3156ac87a5346eb19af1278c9e.tar.gz
Log stacktraces of MultipleExceptions in functionaltests
Change-Id: I479bdb59d06c561c49ae63d8bcbe2e5c8f67577a
Diffstat (limited to 'designateclient')
-rw-r--r--designateclient/functionaltests/v2/fixtures.py18
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"""