Add test files
This commit is contained in:
95
tests/test_cli.py
Normal file
95
tests/test_cli.py
Normal file
@@ -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()
|
||||
Reference in New Issue
Block a user