1
0
mirror of https://github.com/TheLocehiliosan/yadm synced 2024-10-27 20:34:27 +00:00
TheLocehiliosan_yadm/test/test_syntax.py

77 lines
2.5 KiB
Python
Raw Normal View History

"""Syntax checks"""
import os
2023-07-10 14:14:33 +00:00
import pytest
def test_yadm_syntax(runner, yadm):
"""Is syntactically valid"""
run = runner(command=['bash', '-n', yadm])
assert run.success
def test_shellcheck(pytestconfig, runner, yadm, shellcheck_version):
"""Passes shellcheck"""
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(pytestconfig, runner, pylint_version):
"""Passes pylint"""
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')
2023-07-09 16:13:13 +00:00
pyfiles = []
for tfile in os.listdir('test'):
if tfile.endswith('.py'):
pyfiles.append(f'test/{tfile}')
run = runner(command=['pylint'] + pyfiles)
assert run.success
2023-07-10 14:14:33 +00:00
def test_isort(pytestconfig, runner, isort_version):
"""Passes isort"""
if not pytestconfig.getoption("--force-linters"):
run = runner(command=['isort', '--version'], report=False)
if isort_version not in run.out:
pytest.skip('Unsupported isort version')
run = runner(command=['isort', '-c', 'test'])
assert run.success
def test_flake8(pytestconfig, runner, flake8_version):
"""Passes flake8"""
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
2019-03-21 12:38:38 +00:00
def test_yamllint(pytestconfig, runner, yamllint_version):
2019-03-21 12:38:38 +00:00
"""Passes yamllint"""
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')
2019-03-21 12:38:38 +00:00
run = runner(
command=['yamllint', '-s', '$(find . -name \\*.yml)'],
shell=True)
assert run.success
2020-01-20 14:22:17 +00:00
def test_man(runner):
"""Check for warnings from man"""
run = runner(
2023-07-08 19:46:46 +00:00
command=['man.REAL', '--warnings', './yadm.1'])
2020-01-20 14:22:17 +00:00
assert run.success
assert run.err == ''
assert 'yadm - Yet Another Dotfiles Manager' in run.out