Initial upload: PatternForge CLI tool with pattern detection and boilerplate generation
Some checks failed
CI / test (3.10) (push) Failing after 4m55s
CI / test (3.11) (push) Failing after 4m53s
CI / test (3.12) (push) Failing after 4m57s
CI / build (push) Has been skipped

This commit is contained in:
2026-02-02 22:26:08 +00:00
parent 04c65d8aa8
commit 977144e58a

66
tests/test_cli.py Normal file
View File

@@ -0,0 +1,66 @@
import tempfile
from pathlib import Path
from click.testing import CliRunner
from patternforge.cli import main
class TestCLI:
def test_cli_help(self) -> None:
runner = CliRunner()
result = runner.invoke(main, ["--help"])
assert result.exit_code == 0
assert "analyze" in result.output
def test_analyze_command(self) -> None:
runner = CliRunner()
with tempfile.TemporaryDirectory() as tmpdir:
py_file = Path(tmpdir) / "test.py"
py_file.write_text("def test(): pass\n")
result = runner.invoke(
main,
["analyze", tmpdir, "--language", "python", "--output", f"{tmpdir}/patterns.yaml"],
)
assert result.exit_code == 0
assert Path(tmpdir, "patterns.yaml").exists()
def test_template_create_command(self) -> None:
runner = CliRunner()
with tempfile.TemporaryDirectory() as tmpdir:
pattern_file = Path(tmpdir) / "patterns.yaml"
pattern_file.write_text("language: python\nsummary:\n primary_naming: snake_case")
result = runner.invoke(
main,
["template", "create", "cli-test", "--pattern", str(pattern_file)],
)
assert result.exit_code == 0
def test_generate_command(self) -> None:
runner = CliRunner()
with tempfile.TemporaryDirectory() as tmpdir:
pattern_file = Path(tmpdir) / "patterns.yaml"
pattern_file.write_text("language: python\nsummary:\n primary_naming: snake_case")
output_dir = Path(tmpdir) / "output"
result = runner.invoke(
main,
[
"template",
"create",
"gen-cli-test",
"--pattern",
str(pattern_file),
],
)
assert result.exit_code == 0
result = runner.invoke(
main, ["generate", "gen-cli-test", "--output", str(output_dir)]
)
assert result.exit_code == 0
assert any(output_dir.iterdir())
def test_config_command(self) -> None:
runner = CliRunner()
result = runner.invoke(main, ["config"])
assert result.exit_code == 0
assert "Configuration" in result.output