From 26afb1bea68c9bcb1b037f512462c9397071b1c3 Mon Sep 17 00:00:00 2001 From: Laura Couto Date: Wed, 7 Aug 2024 12:39:15 -0300 Subject: [PATCH 1/3] Add tracebacks to errors in CLI runs Signed-off-by: Laura Couto --- kedro/framework/cli/cli.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kedro/framework/cli/cli.py b/kedro/framework/cli/cli.py index ba711868dd..b02023afe6 100644 --- a/kedro/framework/cli/cli.py +++ b/kedro/framework/cli/cli.py @@ -210,6 +210,8 @@ def main( sys.exit(exc.code) except Exception as error: logger.error(f"An error has occurred: {error}") + logger.error(f"{traceback.format_exc()}") + self._cli_hook_manager.hook.after_command_run( project_metadata=self._metadata, command_args=args, exit_code=1 ) From cd5aa208c18139db925849021a1a5ae3fdeb88d3 Mon Sep 17 00:00:00 2001 From: Laura Couto Date: Thu, 8 Aug 2024 12:07:46 -0300 Subject: [PATCH 2/3] Raise exception instead of logging it Signed-off-by: Laura Couto --- kedro/framework/cli/cli.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/kedro/framework/cli/cli.py b/kedro/framework/cli/cli.py index b02023afe6..8fd21acb68 100644 --- a/kedro/framework/cli/cli.py +++ b/kedro/framework/cli/cli.py @@ -5,7 +5,6 @@ from __future__ import annotations import importlib -import logging import sys import traceback from collections import defaultdict @@ -39,9 +38,6 @@ v{version} """ -logger = logging.getLogger(__name__) -logger.addHandler(logging.StreamHandler(sys.stderr)) - @click.group(context_settings=CONTEXT_SETTINGS, name="Kedro") @click.version_option(version, "--version", "-V", help="Show version and exit") @@ -208,15 +204,12 @@ def main( click.echo(message) click.echo(hint) sys.exit(exc.code) - except Exception as error: - logger.error(f"An error has occurred: {error}") - logger.error(f"{traceback.format_exc()}") - + except Exception: self._cli_hook_manager.hook.after_command_run( project_metadata=self._metadata, command_args=args, exit_code=1 ) hook_called = True - sys.exit(1) + raise finally: if not hook_called: self._cli_hook_manager.hook.after_command_run( From 4b2aac050cc11bef560f26bae07cfde37c8b79ec Mon Sep 17 00:00:00 2001 From: Laura Couto Date: Thu, 8 Aug 2024 12:13:20 -0300 Subject: [PATCH 3/3] Update tests Signed-off-by: Laura Couto --- tests/framework/cli/test_cli.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/framework/cli/test_cli.py b/tests/framework/cli/test_cli.py index cd83c9bf21..9aa2606587 100644 --- a/tests/framework/cli/test_cli.py +++ b/tests/framework/cli/test_cli.py @@ -520,7 +520,7 @@ def test_main_hook_exception_handling(self, fake_metadata): project_metadata=kedro_cli._metadata, command_args=[], exit_code=1 ) - assert "An error has occurred: Test Exception" in result.output + assert result.exit_code == 1 @patch("sys.exit") def test_main_hook_finally_block(self, fake_metadata): @@ -535,7 +535,7 @@ def test_main_hook_finally_block(self, fake_metadata): project_metadata=kedro_cli._metadata, command_args=[], exit_code=0 ) - assert "An error has occurred:" not in result.output + assert result.exit_code == 0 @mark.usefixtures("chdir_to_dummy_project")