ci: lint + format + test on push
Some checks failed
/ Tests (push) Failing after 39s
/ Static Analysis (push) Failing after 48s

fix: ensure ci lints all source files

chore: formatting
This commit is contained in:
Marc 2024-04-12 01:16:03 -04:00
parent dc57ecd228
commit eec61d623f
Signed by: marc
GPG key ID: 048E042F22B5DC79
8 changed files with 80 additions and 27 deletions

View file

@ -6,26 +6,31 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v2
- uses: https://github.com/actions/setup-python@v5
with:
python-version: 3.12
- run: |
pip install -r ./requirements.txt
pip install -r ./requirements_sast.txt
- name: Formatting
run: python -m black .
run: python -m black . --check
- name: Import sort
run: python -m isort .
- name: Linting
run: python -m pylint .
run: python -m pylint **/*.py
test:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v2
with:
github-server-url: https://forge.karnov.club
- uses: https://github.com/actions/setup-python@v5
with:
python-version: 3.12
- run: |
pip install -r ./requirements.txt
pip install -r ./requirements_test.txt
python -m pip install -r ./requirements.txt
python -m pip install -r ./requirements_test.txt
- name: Test suites
run: python -m pytest

View file

@ -13,7 +13,8 @@ dependencies = [
[project.optional-dependencies]
sast = [
"black",
"pylint"
"pylint",
"isort"
]
test = [
"pytest"
@ -25,3 +26,16 @@ spud = "spud.cli:cli"
[tool.setuptools]
packages = ["spud"]
[tool.pylint.main]
ignore = ["spud.venv"]
ignore-paths = ["spud.venv"]
jobs = 0
disable = [
"missing-function-docstring",
"missing-module-docstring",
]
[tool.isort]
skip = [
"spud.venv",
]

View file

@ -54,7 +54,9 @@ idna==3.7
iniconfig==2.0.0
# via pytest
isort==5.13.2
# via pylint
# via
# pylint
# spud (pyproject.toml)
mccabe==0.7.0
# via pylint
mypy-extensions==1.0.0

View file

@ -52,7 +52,9 @@ idna==3.7
# anyio
# httpx
isort==5.13.2
# via pylint
# via
# pylint
# spud (pyproject.toml)
mccabe==0.7.0
# via pylint
mypy-extensions==1.0.0

View file

@ -52,7 +52,9 @@ idna==3.7
# anyio
# httpx
isort==5.13.2
# via pylint
# via
# pylint
# spud (pyproject.toml)
mccabe==0.7.0
# via pylint
mypy-extensions==1.0.0

View file

@ -3,8 +3,9 @@ Command-line application entry-point.
Logic for the command-line spud tooling.
"""
import pathlib
import json
import pathlib
import click

View file

@ -1,12 +1,18 @@
import pytest
import click.testing
import importlib
import click.testing
import pytest
import spud.cli
@pytest.fixture(autouse=True)
def mock_default_config_path(monkeypatch, tmpdir):
monkeypatch.setattr(spud.cli, "DEFAULT_CONFIGURATION_PATH", tmpdir / ".config" / "spud" / "config.json")
monkeypatch.setattr(
spud.cli,
"DEFAULT_CONFIGURATION_PATH",
tmpdir / ".config" / "spud" / "config.json",
)
@pytest.fixture(name="invoke_cli")

View file

@ -1,9 +1,12 @@
import pytest
import click
import pathlib
def test_init_raises_if_config_file_exists_default_path(invoke_cli, tmpdir, monkeypatch):
import click
import pytest
def test_init_raises_if_config_file_exists_default_path(
invoke_cli, tmpdir, monkeypatch
):
expected_default_path = tmpdir / ".config" / "spud" / "config.json"
pathlib.Path(expected_default_path).parent.mkdir(parents=True)
@ -12,7 +15,11 @@ def test_init_raises_if_config_file_exists_default_path(invoke_cli, tmpdir, monk
result = invoke_cli(["init"])
assert result.exit_code == 1
assert str(result.exception) == f"File already exists ({str(expected_default_path)}), cannot initialize."
assert (
str(result.exception)
== f"File already exists ({str(expected_default_path)}), cannot initialize."
)
def test_init_raises_if_config_file_exists_custom_path(invoke_cli, tmpdir, monkeypatch):
expected_default_path = tmpdir / "config.json"
@ -22,19 +29,33 @@ def test_init_raises_if_config_file_exists_custom_path(invoke_cli, tmpdir, monke
result = invoke_cli(["--config", str(expected_default_path), "init"])
assert result.exit_code == 1
assert str(result.exception) == f"File already exists ({str(expected_default_path)}), cannot initialize."
assert (
str(result.exception)
== f"File already exists ({str(expected_default_path)}), cannot initialize."
)
def test_print_config_raises_if_no_config_file_default_path(invoke_cli, tmpdir, monkeypatch):
def test_print_config_raises_if_no_config_file_default_path(
invoke_cli, tmpdir, monkeypatch
):
expected_default_path = tmpdir / ".config" / "spud" / "config.json"
result = invoke_cli(["print-config"])
assert result.exit_code == 1
assert str(result.exception) == f"Configuration file not found at {str(expected_default_path)}."
assert (
str(result.exception)
== f"Configuration file not found at {str(expected_default_path)}."
)
def test_print_config_raises_if_no_config_file_custom_path(invoke_cli, tmpdir, monkeypatch):
def test_print_config_raises_if_no_config_file_custom_path(
invoke_cli, tmpdir, monkeypatch
):
config_file = tmpdir / "config.json"
result = invoke_cli(["--config", str(config_file), "print-config"])
assert result.exit_code == 1
assert str(result.exception) == f"Configuration file not found at {str(config_file)}."
assert (
str(result.exception) == f"Configuration file not found at {str(config_file)}."
)