From 0282420c92a41c31f1a9ddfc035d5f75b649a9ee Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Mon, 2 Feb 2026 06:30:34 +0000 Subject: [PATCH] Add test files --- tests/test_cli.py | 95 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 tests/test_cli.py diff --git a/tests/test_cli.py b/tests/test_cli.py new file mode 100644 index 0000000..e98e56f --- /dev/null +++ b/tests/test_cli.py @@ -0,0 +1,95 @@ +"""Tests for the CLI module.""" + +import json +import pytest +from click.testing import CliRunner + +from regex_humanizer.cli import main + + +class TestCLIMain: + def test_main_help(self): + runner = CliRunner() + result = runner.invoke(main, ["--help"]) + assert result.exit_code == 0 + assert "Regex Humanizer" in result.output + + def test_main_version(self): + runner = CliRunner() + result = runner.invoke(main, ["--version"]) + assert result.exit_code == 0 + assert "0.1.0" in result.output + + +class TestExplainCommand: + def test_explain_literal(self): + runner = CliRunner() + result = runner.invoke(main, ["explain", "hello"]) + assert result.exit_code == 0 + assert "hello" in result.output.lower() or "letter" in result.output.lower() + + def test_explain_with_flavor(self): + runner = CliRunner() + result = runner.invoke(main, ["explain", "hello", "--flavor", "python"]) + assert result.exit_code == 0 + assert "hello" in result.output.lower() + + def test_explain_verbose(self): + runner = CliRunner() + result = runner.invoke(main, ["explain", "hello", "--verbose"]) + assert result.exit_code == 0 + assert "Pattern" in result.output + + def test_explain_json(self): + runner = CliRunner() + result = runner.invoke(main, ["explain", "hello", "--json"]) + assert result.exit_code == 0 + assert "{" in result.output + + +class TestGenerateCommand: + def test_generate_literal(self): + runner = CliRunner() + result = runner.invoke(main, ["generate", "hello"]) + assert result.exit_code == 0 + assert "hello" in result.output + + def test_generate_with_count(self): + runner = CliRunner() + result = runner.invoke(main, ["generate", "a", "--count", "3"]) + assert result.exit_code == 0 + + def test_generate_json(self): + runner = CliRunner() + result = runner.invoke(main, ["generate", "hello", "--json"]) + assert result.exit_code == 0 + assert "{" in result.output + + +class TestFromEnglishCommand: + def test_from_english_basic(self): + runner = CliRunner() + result = runner.invoke(main, ["from-english", "the letter a"]) + assert result.exit_code == 0 + + def test_from_english_with_flavor(self): + runner = CliRunner() + result = runner.invoke(main, ["from-english", "a digit", "--flavor", "python"]) + assert result.exit_code == 0 + + +class TestFlavorsCommand: + def test_flavors_list(self): + runner = CliRunner() + result = runner.invoke(main, ["flavors"]) + assert result.exit_code == 0 + assert "pcre" in result.output + assert "javascript" in result.output + + +class TestDetectCommand: + def test_detect_pattern(self): + runner = CliRunner() + result = runner.invoke(main, ["detect", r"\d+"]) + assert result.exit_code == 0 + assert "flavor" in result.output.lower()