From 5e8d07887970be705c56d2ceaa508fc47c7c578c Mon Sep 17 00:00:00 2001 From: jx2lee Date: Fri, 13 Mar 2026 20:07:38 +0900 Subject: [PATCH] skip load catalog when version commands --- pyiceberg/cli/console.py | 3 +++ tests/cli/test_console.py | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/pyiceberg/cli/console.py b/pyiceberg/cli/console.py index 736c32f817..e7a2ceb416 100644 --- a/pyiceberg/cli/console.py +++ b/pyiceberg/cli/console.py @@ -101,6 +101,9 @@ def run( else: ctx.obj["output"] = JsonOutput(verbose=verbose) + if ctx.invoked_subcommand == "version": + return + try: ctx.obj["catalog"] = load_catalog(catalog, **properties) except Exception as e: diff --git a/tests/cli/test_console.py b/tests/cli/test_console.py index 4f0b8caa9d..5dd1a7bc3b 100644 --- a/tests/cli/test_console.py +++ b/tests/cli/test_console.py @@ -25,6 +25,7 @@ from click.testing import CliRunner from pytest_mock import MockFixture +from pyiceberg import __version__ from pyiceberg.catalog.memory import InMemoryCatalog from pyiceberg.cli.console import run from pyiceberg.io import WAREHOUSE @@ -61,6 +62,17 @@ def test_hive_catalog_missing_uri_shows_helpful_error(mocker: MockFixture) -> No assert "'uri'" not in result.output +def test_version_does_not_load_catalog(mocker: MockFixture) -> None: + mock_load_catalog = mocker.patch("pyiceberg.cli.console.load_catalog", side_effect=Exception("should not be called")) + + runner = CliRunner() + result = runner.invoke(run, ["version"]) + + assert result.exit_code == 0 + assert result.output == f"{__version__}\n" + mock_load_catalog.assert_not_called() + + @pytest.fixture(autouse=True) def env_vars(mocker: MockFixture) -> None: mocker.patch.dict(os.environ, MOCK_ENVIRONMENT)