Files
i18n-guardian/tests/test_cli.py
7000pctAUTO 279be59ae0
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / build (push) Has been cancelled
Add tests - part 1
2026-02-02 17:23:49 +00:00

80 lines
2.4 KiB
Python

"""Tests for CLI commands."""
from click.testing import CliRunner
import pytest
from i18n_guardian.cli import main
@pytest.fixture
def runner():
"""Create a Click CLI runner."""
return CliRunner()
class TestCLIBasic:
"""Basic CLI tests."""
def test_version(self, runner):
"""Test --version option."""
result = runner.invoke(main, ["--version"])
assert result.exit_code == 0
assert "i18n-guardian" in result.output.lower()
def test_help(self, runner):
"""Test --help option."""
result = runner.invoke(main, ["--help"])
assert result.exit_code == 0
assert "scan" in result.output.lower()
assert "fix" in result.output.lower()
assert "init" in result.output.lower()
assert "check" in result.output.lower()
class TestScanCommand:
"""Tests for scan command."""
def test_scan_no_path(self, runner):
"""Test scan without path."""
result = runner.invoke(main, ["scan"])
assert result.exit_code == 0
def test_scan_with_verbose(self, runner, temp_dir):
"""Test scan with verbose flag."""
result = runner.invoke(main, ["--verbose", "--path", str(temp_dir), "scan"])
assert result.exit_code == 0
def test_scan_output_format(self, runner, temp_dir):
"""Test scan with different output formats."""
for fmt in ["text", "json"]:
result = runner.invoke(main, ["--path", str(temp_dir), "scan", "--output", fmt])
assert result.exit_code == 0
class TestFixCommand:
"""Tests for fix command."""
def test_fix_dry_run(self, runner, temp_dir):
"""Test fix with dry-run flag."""
result = runner.invoke(main, ["--path", str(temp_dir), "fix", "--dry-run"])
assert result.exit_code == 0
class TestInitCommand:
"""Tests for init command."""
def test_init_output(self, runner, temp_dir):
"""Test init command output."""
output_path = str(temp_dir / ".i18n-guardian.yaml")
result = runner.invoke(main, ["init", "--output", output_path])
assert result.exit_code == 0
class TestCheckCommand:
"""Tests for check command."""
def test_check_ci_output(self, runner, temp_dir):
"""Test check command with CI options."""
result = runner.invoke(main, ["--path", str(temp_dir), "check", "--output", "json"])
assert result.exit_code == 0