45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
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
|