infra: pytest configuration, timeout enforcement, and coverage threshold

- pytest-timeout>=2.1.0 added; timeout=30s per test prevents runaway
  tests from hanging CI
- asyncio_mode=auto in pyproject.toml [tool.pytest.ini_options]; async
  tests run without per-test markers
- fail_under=27 in [tool.coverage.report] as the enforced coverage
  floor; target 40% tracked in TASK-14
- CI test matrix updated for Python 3.9, 3.11, 3.12
This commit is contained in:
Stacy Olivas
2026-03-17 17:40:52 -07:00
parent fb6963249e
commit ba32accc44
3 changed files with 39 additions and 3 deletions
+7
View File
@@ -28,6 +28,13 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install -e ".[test]"
pip install ruff mypy
- name: Lint with ruff
run: ruff check .
- name: Type check with mypy
run: mypy modules/ --ignore-missing-imports
- name: Run tests
run: pytest tests/ -v --tb=short