From 208c3a780ce7a95da8d42983ecfb1ca1930da1a3 Mon Sep 17 00:00:00 2001 From: Jason Schrader Date: Wed, 15 May 2024 15:50:49 -0700 Subject: [PATCH] Add version command to CLI (#348) * feat: add version command to cli with tools flag * test: check output of version and tools flag * fix: add version tool info to cli outputs --- src/crewai/cli/cli.py | 18 ++++++++++++++++++ tests/cli_test.py | 20 ++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 tests/cli_test.py diff --git a/src/crewai/cli/cli.py b/src/crewai/cli/cli.py index ff633f668..8bec5af45 100644 --- a/src/crewai/cli/cli.py +++ b/src/crewai/cli/cli.py @@ -1,4 +1,5 @@ import click +import pkg_resources from .create_crew import create_crew @@ -15,5 +16,22 @@ def create(project_name): create_crew(project_name) +@crewai.command() +@click.option( + "--tools", is_flag=True, help="Show the installed version of crewai tools" +) +def version(tools): + """Show the installed version of crewai.""" + crewai_version = pkg_resources.get_distribution("crewai").version + click.echo(f"crewai version: {crewai_version}") + + if tools: + try: + tools_version = pkg_resources.get_distribution("crewai[tools]").version + click.echo(f"crewai tools version: {tools_version}") + except pkg_resources.DistributionNotFound: + click.echo("crewai tools not installed") + + if __name__ == "__main__": crewai() diff --git a/tests/cli_test.py b/tests/cli_test.py new file mode 100644 index 000000000..88247ec69 --- /dev/null +++ b/tests/cli_test.py @@ -0,0 +1,20 @@ +from click.testing import CliRunner +from crewai.cli.cli import version + + +def test_version_command(): + runner = CliRunner() + result = runner.invoke(version) + assert result.exit_code == 0 + assert "crewai version:" in result.output + + +def test_version_command_with_tools(): + runner = CliRunner() + result = runner.invoke(version, ["--tools"]) + assert result.exit_code == 0 + assert "crewai version:" in result.output + assert ( + "crewai tools version:" in result.output + or "crewai tools not installed" in result.output + )