From e12b6617db7075f79eb62bdc3d2b643bf96584b0 Mon Sep 17 00:00:00 2001 From: eleanorjboyd Date: Mon, 9 Oct 2023 14:37:18 -0700 Subject: [PATCH 1/3] fix unittest output to remove object incorrectly printed as just its definition --- pythonFiles/unittestadapter/execution.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/pythonFiles/unittestadapter/execution.py b/pythonFiles/unittestadapter/execution.py index 0684ada8e44b..1c6a4ded60cd 100644 --- a/pythonFiles/unittestadapter/execution.py +++ b/pythonFiles/unittestadapter/execution.py @@ -104,13 +104,18 @@ def formatResult( subtest: Union[unittest.TestCase, None] = None, ): tb = None - if error and error[2] is not None: - # Format traceback + + message = "" + # error is a tuple of the form returned by sys.exc_info(): (type, value, traceback). + if error is not None: + try: + message = f"{error[0]} {error[1]}" + except Exception: + message = "Errored occurred, unknown type or value" formatted = traceback.format_exception(*error) + tb = "".join(formatted) # Remove the 'Traceback (most recent call last)' formatted = formatted[1:] - tb = "".join(formatted) - if subtest: test_id = subtest.id() else: @@ -119,7 +124,7 @@ def formatResult( result = { "test": test.id(), "outcome": outcome, - "message": str(error), + "message": message, "traceback": tb, "subtest": subtest.id() if subtest else None, } From a507a95bc049919abff9cafdab81fca7ab4da485 Mon Sep 17 00:00:00 2001 From: eleanorjboyd Date: Mon, 9 Oct 2023 14:42:21 -0700 Subject: [PATCH 2/3] add test check for message fix --- pythonFiles/tests/unittestadapter/test_execution.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pythonFiles/tests/unittestadapter/test_execution.py b/pythonFiles/tests/unittestadapter/test_execution.py index f7306e37662e..ccf13d983c60 100644 --- a/pythonFiles/tests/unittestadapter/test_execution.py +++ b/pythonFiles/tests/unittestadapter/test_execution.py @@ -202,6 +202,9 @@ def test_failed_tests(): assert "outcome" in id_result assert id_result["outcome"] == "failure" assert "message" and "traceback" in id_result + assert "2 not greater than 3" in str(id_result["message"]) or "1 == 1" in str( + id_result["traceback"] + ) assert True From 602aa5bfe25fe2ca84443d2ff640e101689b3aa8 Mon Sep 17 00:00:00 2001 From: Eleanor Boyd Date: Tue, 10 Oct 2023 08:35:57 -0700 Subject: [PATCH 3/3] Update pythonFiles/unittestadapter/execution.py Co-authored-by: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> --- pythonFiles/unittestadapter/execution.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pythonFiles/unittestadapter/execution.py b/pythonFiles/unittestadapter/execution.py index 1c6a4ded60cd..5f46bda95328 100644 --- a/pythonFiles/unittestadapter/execution.py +++ b/pythonFiles/unittestadapter/execution.py @@ -111,7 +111,7 @@ def formatResult( try: message = f"{error[0]} {error[1]}" except Exception: - message = "Errored occurred, unknown type or value" + message = "Error occurred, unknown type or value" formatted = traceback.format_exception(*error) tb = "".join(formatted) # Remove the 'Traceback (most recent call last)'