- Python 89%
- Makefile 11%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
ci / test (3.10) (push) Successful in 24s
ci / test (3.12) (push) Successful in 25s
ci / test (3.11) (push) Successful in 22s
ci / test (3.13) (push) Successful in 23s
ci / test (3.14) (push) Successful in 24s
ci / test (3.15) (push) Successful in 24s
ci / lint (push) Successful in 45s
ci / publish (push) Successful in 23s
Closes #4 Monitoring plan, phase 5 rollout, same as the pilots argus/backend#45 and argus/frontend#35. ## Changes (`.forgejo/workflows/ci.yml`) - New step "Collect publish details for Argus": `ARGUS_ARTIFACT` = built wheel `name|bytes|package page`; `/tmp/dependencies.txt` = the runtime dependencies declared in `pyproject.toml` (`name specifier` lines, e.g. `Django >=4.2`). - Both publish-release calls (numbered release, devel snapshot) get `ARGUS_UPLOAD_TOKEN: ${{ secrets.ARGUS_UPLOAD_TOKEN }}` and `--artifact "$ARGUS_ARTIFACT" --dependencies /tmp/dependencies.txt`. A failed upload only warns, the release itself is unaffected. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_014BSmBtGWeFBD9z4mYm9SjA Reviewed-on: #5 |
||
| .forgejo/workflows | ||
| src/thierryade_pytest | ||
| tests | ||
| .gitignore | ||
| .pylintrc | ||
| LICENSE | ||
| Makefile | ||
| pyproject.toml | ||
| README.md | ||
| renovate.json | ||
| tox.ini | ||
thierryade-pytest
Plugin pytest pour Thierryade : relie automatiquement vos tests unitaires aux specs (raffinements compris) que vous avez documentées dans Thierryade, et pousse le résultat de chaque run CI directement vers l'outil.
Installation
pip install thierryade-pytest
Aucune configuration supplémentaire : le marqueur covers est
enregistré automatiquement (entry point pytest11), pas besoin de le
déclarer dans votre pytest.ini.
Usage
Dans vos tests, référencez le code de la spec Thierryade (DRH-17) que
ce test vérifie :
import pytest
@pytest.mark.covers("DRH-17")
def test_commit_transfer_locks_the_registration_and_sends_an_email():
...
Un test peut couvrir plusieurs codes : @pytest.mark.covers("DRH-17", "DRH-23").
Un raffinement est une spec comme une autre, avec son propre code. Les
anciens codes de raffinage (DRH-R-9), d'avant la refonte de
Thierryade, restent acceptés : ils désignent désormais la spec qui a
repris ce raffinage.
Après un run normal avec --junitxml=junit.xml, les codes couverts sont
automatiquement sérialisés dans les <properties> de chaque
<testcase>. Poussez-les ensuite vers Thierryade (typiquement une étape
de CI, après le job de tests) :
thierryade-pytest push-coverage \
--junit-xml junit.xml \
--thierryade-url https://thierryade.stationmyr.net \
--thierryade-token "$THIERRYADE_UPLOAD_TOKEN" \
--commit-sha "$GITHUB_SHA" \
--ci-run-url "$CI_RUN_URL" \
--argus-report-out argus-thierryade-report.json
--argus-report-out est optionnel : s'il est fourni, un second fichier
JSON est écrit au format générique d'Argus (« format maison »), à
uploader avec l'action partagée
argus/upload-action :
- uses: https://git.stationmyr.net/argus/upload-action@v1
with:
token: ${{ secrets.ARGUS_UPLOAD_TOKEN }}
reports: custom argus-thierryade-report.json thierryade-coverage
Un code inconnu de Thierryade n'interrompt jamais le reste du push (il est juste signalé) ; une erreur de transport/HTTP, en revanche, fait échouer la commande -- ce mécanisme alimente une vraie base de données, pas juste un badge informatif.
--log-level debug|info|warning|error (défaut info) règle la
verbosité (requêtes HTTP, codes rencontrés, etc. en debug).
Développement
Voir le Makefile (make dev, make test, make lint, make tox).