From f60b9f3b43fb19ce7e9d92c2782f8a80d49e6401 Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Thu, 7 Nov 2024 21:49:30 -0500 Subject: [PATCH] cli: add --version option (#2373) - add version option - add unit test --- libs/cli/langgraph_cli/cli.py | 2 ++ libs/cli/tests/unit_tests/test_cli.py | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/libs/cli/langgraph_cli/cli.py b/libs/cli/langgraph_cli/cli.py index 1e38e47c7..e581c5eab 100644 --- a/libs/cli/langgraph_cli/cli.py +++ b/libs/cli/langgraph_cli/cli.py @@ -15,6 +15,7 @@ from langgraph_cli.constants import DEFAULT_CONFIG, DEFAULT_PORT from langgraph_cli.docker import DockerCapabilities from langgraph_cli.exec import Runner, subp_exec from langgraph_cli.progress import Progress +from langgraph_cli.version import __version__ OPT_DOCKER_COMPOSE = click.option( "--docker-compose", @@ -148,6 +149,7 @@ OPT_POSTGRES_URI = click.option( @click.group() +@click.version_option(version=__version__, prog_name="LangGraph CLI") def cli(): pass diff --git a/libs/cli/tests/unit_tests/test_cli.py b/libs/cli/tests/unit_tests/test_cli.py index a4972f393..2c7984c72 100644 --- a/libs/cli/tests/unit_tests/test_cli.py +++ b/libs/cli/tests/unit_tests/test_cli.py @@ -1,6 +1,8 @@ import pathlib -from langgraph_cli.cli import prepare_args_and_stdin +from click.testing import CliRunner + +from langgraph_cli.cli import cli, prepare_args_and_stdin from langgraph_cli.config import Config, validate_config from langgraph_cli.docker import DEFAULT_POSTGRES_URI, DockerCapabilities, Version from langgraph_cli.util import clean_empty_lines @@ -115,3 +117,17 @@ services: """ assert actual_args == expected_args assert clean_empty_lines(actual_stdin) == expected_stdin + + +def test_version_option() -> None: + """Test the --version option of the CLI.""" + runner = CliRunner() + result = runner.invoke(cli, ["--version"]) + + # Verify that the command executed successfully + assert result.exit_code == 0, "Expected exit code 0 for --version option" + + # Check that the output contains the correct version information + assert ( + "LangGraph CLI, version" in result.output + ), "Expected version information in output"