diff --git a/errorfix/tests/test_cli.py b/errorfix/tests/test_cli.py new file mode 100644 index 0000000..2f8b3f2 --- /dev/null +++ b/errorfix/tests/test_cli.py @@ -0,0 +1,44 @@ +import pytest +from click.testing import CliRunner +from errorfix.cli import cli + + +class TestCLI: + def setup_method(self): + self.runner = CliRunner() + + def test_cli_help(self): + result = self.runner.invoke(cli, ['--help']) + assert result.exit_code == 0 + assert 'fix' in result.output + assert 'check' in result.output + assert 'plugins' in result.output + + def test_cli_version(self): + result = self.runner.invoke(cli, ['--version']) + assert result.exit_code == 0 or result.exit_code == 2 + + def test_fix_command_help(self): + result = self.runner.invoke(cli, ['fix', '--help']) + assert result.exit_code == 0 + assert '--input' in result.output or 'input' in result.output + + def test_fix_with_stdin(self): + result = self.runner.invoke(cli, ['fix'], input="NameError: name 'foo' is not defined") + assert result.exit_code == 0 + + def test_fix_with_format_json(self): + result = self.runner.invoke(cli, ['fix', '--format', 'json'], input="NameError: name 'foo' is not defined") + assert result.exit_code == 0 or result.exit_code == 2 + + def test_plugins_command(self): + result = self.runner.invoke(cli, ['plugins']) + assert result.exit_code == 0 + + def test_check_command(self): + result = self.runner.invoke(cli, ['check']) + assert result.exit_code == 0 + + def test_fix_with_no_rules(self): + result = self.runner.invoke(cli, ['fix', '--rules', '/nonexistent'], input="Some error") + assert result.exit_code == 0