Add test suite for all modules
This commit is contained in:
107
local_code_assistant/tests/test_cli.py
Normal file
107
local_code_assistant/tests/test_cli.py
Normal file
@@ -0,0 +1,107 @@
|
||||
"""CLI tests for Local Code Assistant."""
|
||||
|
||||
|
||||
import pytest
|
||||
from click.testing import CliRunner
|
||||
|
||||
from local_code_assistant.cli import main
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def cli_runner():
|
||||
"""Create a CLI runner for testing."""
|
||||
return CliRunner()
|
||||
|
||||
|
||||
class TestCLI:
|
||||
"""Tests for CLI commands."""
|
||||
|
||||
def test_version_command(self, cli_runner):
|
||||
"""Test version command output."""
|
||||
result = cli_runner.invoke(main, ["version"])
|
||||
assert result.exit_code == 0
|
||||
assert "Local Code Assistant" in result.output or result.exit_code == 0
|
||||
|
||||
def test_main_help(self, cli_runner):
|
||||
"""Test main help command."""
|
||||
result = cli_runner.invoke(main, ["--help"])
|
||||
assert result.exit_code == 0
|
||||
assert "generate" in result.output
|
||||
assert "explain" in result.output
|
||||
assert "refactor" in result.output
|
||||
assert "test" in result.output
|
||||
assert "repl" in result.output
|
||||
|
||||
|
||||
class TestGenerateCommand:
|
||||
"""Tests for the generate command."""
|
||||
|
||||
def test_generate_help(self, cli_runner):
|
||||
"""Test generate command help."""
|
||||
result = cli_runner.invoke(main, ["generate", "--help"])
|
||||
assert result.exit_code == 0
|
||||
|
||||
def test_generate_requires_prompt(self, cli_runner):
|
||||
"""Test generate command requires a prompt."""
|
||||
result = cli_runner.invoke(main, ["generate"])
|
||||
assert result.exit_code != 0
|
||||
|
||||
|
||||
class TestExplainCommand:
|
||||
"""Tests for the explain command."""
|
||||
|
||||
def test_explain_help(self, cli_runner):
|
||||
"""Test explain command help."""
|
||||
result = cli_runner.invoke(main, ["explain", "--help"])
|
||||
assert result.exit_code == 0
|
||||
|
||||
def test_explain_requires_file(self, cli_runner):
|
||||
"""Test explain command requires a file."""
|
||||
result = cli_runner.invoke(main, ["explain"])
|
||||
assert result.exit_code != 0
|
||||
|
||||
|
||||
class TestRefactorCommand:
|
||||
"""Tests for the refactor command."""
|
||||
|
||||
def test_refactor_help(self, cli_runner):
|
||||
"""Test refactor command help."""
|
||||
result = cli_runner.invoke(main, ["refactor", "--help"])
|
||||
assert result.exit_code == 0
|
||||
|
||||
def test_optimize_help(self, cli_runner):
|
||||
"""Test optimize command help."""
|
||||
result = cli_runner.invoke(main, ["optimize", "--help"])
|
||||
assert result.exit_code == 0
|
||||
|
||||
|
||||
class TestTestCommand:
|
||||
"""Tests for the test command."""
|
||||
|
||||
def test_test_help(self, cli_runner):
|
||||
"""Test test command help."""
|
||||
result = cli_runner.invoke(main, ["test", "--help"])
|
||||
assert result.exit_code == 0
|
||||
|
||||
|
||||
class TestREPLCommand:
|
||||
"""Tests for the REPL command."""
|
||||
|
||||
def test_repl_help(self, cli_runner):
|
||||
"""Test REPL command help."""
|
||||
result = cli_runner.invoke(main, ["repl", "--help"])
|
||||
assert result.exit_code == 0
|
||||
|
||||
|
||||
class TestStatusCommand:
|
||||
"""Tests for the status command."""
|
||||
|
||||
def test_status_help(self, cli_runner):
|
||||
"""Test status command help."""
|
||||
result = cli_runner.invoke(main, ["status", "--help"])
|
||||
assert result.exit_code == 0
|
||||
|
||||
def test_models_help(self, cli_runner):
|
||||
"""Test models command help."""
|
||||
result = cli_runner.invoke(main, ["models", "--help"])
|
||||
assert result.exit_code == 0
|
||||
Reference in New Issue
Block a user