mirror of
https://github.com/katanemo/plano.git
synced 2026-04-25 16:56:24 +02:00
43 lines
1.3 KiB
Python
43 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
|