ci: lint + format + test on push
fix: ensure ci lints all source files chore: formatting
This commit is contained in:
parent
dc57ecd228
commit
95dc28e227
5 changed files with 48 additions and 15 deletions
|
@ -6,22 +6,24 @@ 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: 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: |
|
||||
|
|
|
@ -25,3 +25,7 @@ spud = "spud.cli:cli"
|
|||
[tool.setuptools]
|
||||
packages = ["spud"]
|
||||
|
||||
[tool.pylint.main]
|
||||
ignore = ["spud.venv"]
|
||||
ignore-paths = ["spud.venv"]
|
||||
jobs = 0
|
||||
|
|
|
@ -3,6 +3,7 @@ Command-line application entry-point.
|
|||
|
||||
Logic for the command-line spud tooling.
|
||||
"""
|
||||
|
||||
import pathlib
|
||||
import json
|
||||
|
||||
|
|
|
@ -4,9 +4,14 @@ import importlib
|
|||
|
||||
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")
|
||||
|
|
|
@ -3,16 +3,23 @@ import click
|
|||
|
||||
import pathlib
|
||||
|
||||
def test_init_raises_if_config_file_exists_default_path(invoke_cli, tmpdir, monkeypatch):
|
||||
|
||||
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)
|
||||
expected_default_path.write("{}")
|
||||
|
||||
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"
|
||||
|
@ -20,21 +27,35 @@ def test_init_raises_if_config_file_exists_custom_path(invoke_cli, tmpdir, monke
|
|||
expected_default_path.write("{}")
|
||||
|
||||
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."
|
||||
|
||||
def test_print_config_raises_if_no_config_file_default_path(invoke_cli, tmpdir, monkeypatch):
|
||||
assert result.exit_code == 1
|
||||
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
|
||||
):
|
||||
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)}."
|
||||
)
|
||||
|
|
Reference in a new issue