Source code for mendevi.testing.coding_style
"""Executes analyser of code quality."""
import os
import subprocess
from mendevi.utils import get_project_root
[docs]
def run_ruff(args: list[str]) -> bool:
"""Run Ruff with given arguments, return True if no lint errors."""
cmd = ["ruff", "check", *args]
env = os.environ | {"FORCE_COLOR": "1"}
result = subprocess.run(cmd, check=False, capture_output=True, text=True, env=env)
print(result.stdout)
print(result.stderr)
return result.returncode == 0
[docs]
def test_linting() -> None:
"""Run Ruff (replaces mccabe, pycodestyle, pydocstyle, pyflakes, pylint)."""
root = get_project_root()
assert run_ruff([str(root), "--config", str(root.parent / "pyproject.toml")])