43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import pytest
|
|
from click.testing import CliRunner
|
|
from cmdparse.cli import main
|
|
|
|
|
|
def test_cli_basic():
|
|
"""Test basic CLI functionality."""
|
|
runner = CliRunner()
|
|
result = runner.invoke(main, ['-q'], input='test input')
|
|
assert result.exit_code == 0
|
|
|
|
|
|
def test_cli_output_format():
|
|
"""Test different output formats."""
|
|
runner = CliRunner()
|
|
for fmt in ['json', 'yaml', 'csv', 'raw']:
|
|
result = runner.invoke(main, ['-o', fmt, '-q'], input='test input')
|
|
assert result.exit_code == 0
|
|
|
|
|
|
def test_cli_extract_fields():
|
|
"""Test field extraction."""
|
|
runner = CliRunner()
|
|
input_text = 'key1: value1\nkey2: value2'
|
|
result = runner.invoke(main, ['-e', 'key1', '-q'], input=input_text)
|
|
assert result.exit_code == 0
|
|
|
|
|
|
def test_cli_empty_input():
|
|
"""Test handling of empty input."""
|
|
runner = CliRunner()
|
|
result = runner.invoke(main, ['-q'], input='')
|
|
assert result.exit_code == 1
|
|
assert 'No input' in result.output
|
|
|
|
|
|
def test_cli_quiet_flag():
|
|
"""Test quiet flag suppresses pattern detection."""
|
|
runner = CliRunner()
|
|
result_quiet = runner.invoke(main, ['-q'], input='test')
|
|
result_normal = runner.invoke(main, [], input='test')
|
|
assert result_quiet.exit_code == 0
|