feat(v5.2.0): finalize Infrastructure & Polish (tests isolation, xdist, lint, CI)
FlowDeck CI / lint (push) Successful in 43s
FlowDeck CI / test (push) Successful in 4m2s
FlowDeck CI / lint (pull_request) Successful in 42s
FlowDeck CI / test (pull_request) Successful in 4m3s
FlowDeck CI / docker (push) Successful in 1m2s
FlowDeck CI / docker (pull_request) Successful in 35s

tests/conftest.py: mutate the settings singleton (instead of rebinding) so DB + backup dir are isolated per test -> pytest-xdist safe.
Real backup tests (snapshot/prune/admin API) and OAuth mock tests (Gitea/GitHub/link) replace the previous skips.
init_db() now also creates webhook_subscriptions (full schema without the FastAPI lifespan).
ruff check is clean; .eslintrc.json migrated to eslint.config.mjs (flat config).
CI: lint job (ruff + eslint), parallel tests (-n auto), run on every branch push.
VERSION 5.11.1.
This commit is contained in:
2026-09-11 23:36:53 -04:00
parent 881c3e3e0a
commit ba363eaee9
42 changed files with 566 additions and 206 deletions
+19 -5
View File
@@ -1,10 +1,10 @@
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["."]
# Parallel execution via pytest-xdist (v5.2.0). Override with `-n 0` to run
# sequentially: `pytest -n 0`.
# Note: some tests use shared temp directories — run sequentially for stability.
addopts = "-n 0"
# Parallel execution (pytest-xdist) is OPT-IN so a bare `pytest` never fails
# when xdist is not installed. Run locally with `pytest -n auto`; CI passes
# `-n auto` explicitly after installing requirements-dev.txt.
[tool.ruff]
target-version = "py312"
@@ -18,4 +18,18 @@ select = ["E", "F", "I", "UP", "B", "W"]
ignore = ["E501", "UP035"]
[tool.ruff.lint.isort]
known-first-party = ["app", "tests"]
known-first-party = ["app", "tests"]
[tool.ruff.lint.flake8-bugbear]
# FastAPI requires dependency markers (Depends, Query, ...) in argument
# defaults — that is not the bug B008 warns about.
extend-immutable-calls = [
"fastapi.Depends",
"fastapi.Query",
"fastapi.Path",
"fastapi.Body",
"fastapi.Form",
"fastapi.File",
"fastapi.Header",
"fastapi.Cookie",
]