From 32f219c9e42a9ddcb75350d248c1a91c9b8fbc3c Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Sat, 31 Jan 2026 03:00:25 +0000 Subject: [PATCH] Initial upload: Git Commit AI - privacy-first CLI for generating commit messages with local LLM --- git_commit_ai/tests/test_cli.py | 65 +++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 git_commit_ai/tests/test_cli.py diff --git a/git_commit_ai/tests/test_cli.py b/git_commit_ai/tests/test_cli.py new file mode 100644 index 0000000..7dd1028 --- /dev/null +++ b/git_commit_ai/tests/test_cli.py @@ -0,0 +1,65 @@ +"""Tests for the CLI module.""" + +import sys +from unittest.mock import MagicMock, patch + +import click +from click.testing import CliRunner + +from git_commit_ai.cli.cli import main + + +class TestCLIBasic: + """Basic CLI tests.""" + + def test_main_help(self): + """Test main command help.""" + runner = CliRunner() + result = runner.invoke(main, ["--help"]) + assert result.exit_code == 0 + assert "Git Commit AI" in result.output + assert "generate" in result.output + assert "status" in result.output + + def test_generate_help(self): + """Test generate command help.""" + runner = CliRunner() + result = runner.invoke(main, ["generate", "--help"]) + assert result.exit_code == 0 + assert "conventional" in result.output + assert "model" in result.output + + +class TestCLIValidation: + """CLI validation tests.""" + + def test_validate_valid_message(self): + """Test validating a valid conventional commit message.""" + runner = CliRunner() + result = runner.invoke(main, ["validate", "feat(auth): add login"]) + assert result.exit_code == 0 + assert "Valid" in result.output + + def test_validate_invalid_message(self): + """Test validating an invalid commit message.""" + runner = CliRunner() + result = runner.invoke(main, ["validate", "just a random message"]) + assert result.exit_code == 1 + assert "Invalid" in result.output + + def test_validate_empty_message(self): + """Test validating an empty commit message.""" + runner = CliRunner() + result = runner.invoke(main, ["validate", ""]) + assert result.exit_code == 1 + + +class TestCLIAutoFix: + """CLI auto-fix tests.""" + + def test_validate_auto_fix(self): + """Test auto-fix suggestion.""" + runner = CliRunner() + result = runner.invoke(main, ["validate", "add login feature", "--auto-fix"]) + assert result.exit_code == 1 + assert "Suggested fix" in result.output