Add utils and tests
Some checks failed
CI / test (push) Failing after 12s
CI / build (push) Has been skipped

This commit is contained in:
2026-02-01 23:46:55 +00:00
parent 2c7c667a16
commit 187bd7d0e7

90
tests/test_integration.py Normal file
View File

@@ -0,0 +1,90 @@
import pytest
from click.testing import CliRunner
from pathlib import Path
from codechunk.cli import main
class TestCLICommands:
"""Tests for CLI commands."""
def test_cli_version(self):
"""Test version command."""
runner = CliRunner()
result = runner.invoke(main, ["version"])
assert result.exit_code == 0
assert "CodeChunk" in result.output or "0.1" in result.output
def test_cli_help(self):
"""Test help command."""
runner = CliRunner()
result = runner.invoke(main, ["--help"])
assert result.exit_code == 0
assert "generate" in result.output
assert "analyze" in result.output
def test_generate_command_help(self):
"""Test generate command help."""
runner = CliRunner()
result = runner.invoke(main, ["generate", "--help"])
assert result.exit_code == 0
assert "--output" in result.output
assert "--format" in result.output
def test_analyze_command_help(self):
"""Test analyze command help."""
runner = CliRunner()
result = runner.invoke(main, ["analyze", "--help"])
assert result.exit_code == 0
assert "--json" in result.output
def test_generate_nonexistent_path(self):
"""Test generate with non-existent path."""
runner = CliRunner()
result = runner.invoke(main, ["generate", "/nonexistent/path"])
assert result.exit_code != 0
class TestIntegration:
"""Integration tests for full pipeline."""
def test_full_pipeline_python(self, tmp_path, sample_python_code):
"""Test full analysis pipeline with Python code."""
(tmp_path / "main.py").write_text(sample_python_code)
runner = CliRunner()
result = runner.invoke(main, ["analyze", str(tmp_path)])
assert result.exit_code == 0
def test_full_pipeline_multiple_files(self, tmp_path):
"""Test full pipeline with multiple files."""
(tmp_path / "main.py").write_text('''
"""Main module."""
def main():
pass
''')
(tmp_path / "utils.py").write_text('''
"""Utils module."""
def helper():
pass
''')
runner = CliRunner()
result = runner.invoke(main, ["analyze", str(tmp_path)])
assert result.exit_code == 0
def test_generate_preserves_code_structure(self, tmp_path, sample_python_code):
"""Test that generated output preserves code structure."""
(tmp_path / "test.py").write_text(sample_python_code)
runner = CliRunner()
result = runner.invoke(main, ["generate", str(tmp_path), "--format", "markdown"])
assert result.exit_code == 0
assert "DataProcessor" in result.output