Add --force-linters option to pylint (#179)
When this option is provided, linters will be run regardless of the version installed. Normally tests are skipped if the linters are not the supported version.
This commit is contained in:
parent
5d484ca825
commit
437ae2b719
2 changed files with 30 additions and 16 deletions
|
@ -12,6 +12,16 @@ import py
|
|||
import pytest
|
||||
|
||||
|
||||
def pytest_addoption(parser):
|
||||
"""Add options to pytest"""
|
||||
parser.addoption(
|
||||
"--force-linters",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="Run linters regardless of installed versions",
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
||||
def shellcheck_version():
|
||||
"""Version of shellcheck supported"""
|
||||
|
|
|
@ -10,20 +10,22 @@ def test_yadm_syntax(runner, yadm):
|
|||
assert run.success
|
||||
|
||||
|
||||
def test_shellcheck(runner, yadm, shellcheck_version):
|
||||
def test_shellcheck(pytestconfig, runner, yadm, shellcheck_version):
|
||||
"""Passes shellcheck"""
|
||||
run = runner(command=['shellcheck', '-V'], report=False)
|
||||
if f'version: {shellcheck_version}' not in run.out:
|
||||
pytest.skip('Unsupported shellcheck version')
|
||||
if not pytestconfig.getoption("--force-linters"):
|
||||
run = runner(command=['shellcheck', '-V'], report=False)
|
||||
if f'version: {shellcheck_version}' not in run.out:
|
||||
pytest.skip('Unsupported shellcheck version')
|
||||
run = runner(command=['shellcheck', '-s', 'bash', yadm])
|
||||
assert run.success
|
||||
|
||||
|
||||
def test_pylint(runner, pylint_version):
|
||||
def test_pylint(pytestconfig, runner, pylint_version):
|
||||
"""Passes pylint"""
|
||||
run = runner(command=['pylint', '--version'], report=False)
|
||||
if f'pylint {pylint_version}' not in run.out:
|
||||
pytest.skip('Unsupported pylint version')
|
||||
if not pytestconfig.getoption("--force-linters"):
|
||||
run = runner(command=['pylint', '--version'], report=False)
|
||||
if f'pylint {pylint_version}' not in run.out:
|
||||
pytest.skip('Unsupported pylint version')
|
||||
pyfiles = list()
|
||||
for tfile in os.listdir('test'):
|
||||
if tfile.endswith('.py'):
|
||||
|
@ -32,20 +34,22 @@ def test_pylint(runner, pylint_version):
|
|||
assert run.success
|
||||
|
||||
|
||||
def test_flake8(runner, flake8_version):
|
||||
def test_flake8(pytestconfig, runner, flake8_version):
|
||||
"""Passes flake8"""
|
||||
run = runner(command=['flake8', '--version'], report=False)
|
||||
if not run.out.startswith(flake8_version):
|
||||
pytest.skip('Unsupported flake8 version')
|
||||
if not pytestconfig.getoption("--force-linters"):
|
||||
run = runner(command=['flake8', '--version'], report=False)
|
||||
if not run.out.startswith(flake8_version):
|
||||
pytest.skip('Unsupported flake8 version')
|
||||
run = runner(command=['flake8', 'test'])
|
||||
assert run.success
|
||||
|
||||
|
||||
def test_yamllint(runner, yamllint_version):
|
||||
def test_yamllint(pytestconfig, runner, yamllint_version):
|
||||
"""Passes yamllint"""
|
||||
run = runner(command=['yamllint', '--version'], report=False)
|
||||
if not run.out.strip().endswith(yamllint_version):
|
||||
pytest.skip('Unsupported yamllint version')
|
||||
if not pytestconfig.getoption("--force-linters"):
|
||||
run = runner(command=['yamllint', '--version'], report=False)
|
||||
if not run.out.strip().endswith(yamllint_version):
|
||||
pytest.skip('Unsupported yamllint version')
|
||||
run = runner(
|
||||
command=['yamllint', '-s', '$(find . -name \\*.yml)'],
|
||||
shell=True)
|
||||
|
|
Loading…
Reference in a new issue