mirror of
https://github.com/katanemo/plano.git
synced 2026-04-26 17:26:26 +02:00
* removing unnecessar setup.py files * updated the cli for debug and access logs * ran the pre-commit locally to fix pull request * fixed bug where if archgw_process is None we didn't handle it gracefully * Apply suggestions from code review Co-authored-by: Adil Hafeez <adil@katanemo.com> * fixed changes based on PR * fixed version not found message * fixed message based on PR feedback * adding poetry lock * fixed pre-commit --------- Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-261.local> Co-authored-by: Adil Hafeez <adil@katanemo.com>
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import pytest
|
|
from click.testing import CliRunner
|
|
from tools.cli.main import main # Import your CLI's entry point
|
|
import importlib.metadata
|
|
|
|
|
|
def get_version():
|
|
"""Helper function to fetch the version."""
|
|
try:
|
|
version = importlib.metadata.version("archgw")
|
|
return version
|
|
except importlib.metadata.PackageNotFoundError:
|
|
return None
|
|
|
|
|
|
@pytest.fixture
|
|
def runner():
|
|
"""Fixture to create a Click test runner."""
|
|
return CliRunner()
|
|
|
|
|
|
def test_version_option(runner):
|
|
"""Test the --version option."""
|
|
result = runner.invoke(main, ["--version"])
|
|
assert result.exit_code == 0
|
|
expected_version = get_version()
|
|
assert f"archgw cli version: {expected_version}" in result.output
|
|
|
|
|
|
def test_default_behavior(runner):
|
|
"""Test the default behavior when no command is provided."""
|
|
result = runner.invoke(main)
|
|
assert result.exit_code == 0
|
|
assert "Arch (The Intelligent Prompt Gateway) CLI" in result.output
|
|
assert "Usage:" in result.output # Ensure help text is shown
|
|
|
|
|
|
def test_invalid_command(runner):
|
|
"""Test that an invalid command returns an appropriate error message."""
|
|
result = runner.invoke(main, ["invalid_command"])
|
|
assert result.exit_code != 0 # Non-zero exit code for invalid command
|
|
assert "Error: No such command 'invalid_command'" in result.output
|