From d92f52ae02616aa70c50c47fd2bc2b88ab6fa3b6 Mon Sep 17 00:00:00 2001 From: Gregory Becker Date: Fri, 27 Mar 2020 15:39:44 -0700 Subject: [PATCH] fix handling of asserts for python3 --- lib/spack/spack/error.py | 6 ++++-- lib/spack/spack/test/cmd/test.py | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/spack/spack/error.py b/lib/spack/spack/error.py index 213e8523421..0da951b7075 100644 --- a/lib/spack/spack/error.py +++ b/lib/spack/spack/error.py @@ -22,10 +22,12 @@ def re_raise(e, exc_info=None): # construct arguments to re-raise error from type args = [] - if hasattr(e, 'message'): + if hasattr(e, 'args'): + args.extend(e.args) + if hasattr(e, 'message') and e.message not in e.args: args.append(e.message) if hasattr(e, 'long_message'): - args.append(e.long_message) + args.append(str(e.long_message)) if sys.version_info[0] < 3: # ugly hack: exec to avoid the fact this is a syntax diff --git a/lib/spack/spack/test/cmd/test.py b/lib/spack/spack/test/cmd/test.py index f2c1fc8c715..dd6937aec72 100644 --- a/lib/spack/spack/test/cmd/test.py +++ b/lib/spack/spack/test/cmd/test.py @@ -88,6 +88,7 @@ def test_test_output_on_failure(mock_packages, mock_archive, mock_fetch, out = spack_test('test-fail', fail_on_error=False) assert "Expected 'not in the output' in output of `true`" in out + assert "AssertionError:" in out def test_show_log_on_error(mock_packages, mock_archive, mock_fetch,