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