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