thierryade-pytest (1.0.0)

Published 2026-10-24 16:12:35 +00:00 by Gilles in thierryade/thierryade-pytest

Installation

pip install --index-url  thierryade-pytest

About this package

Plugin pytest pour Thierryade : marqueur covers(), propriétés JUnit, et poussée de couverture (Thierryade + rapport Argus).

thierryade-pytest

CI License: GPLv3

Plugin pytest pour Thierryade : relie automatiquement vos tests unitaires aux specs (ou aux raffinages) 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 Thierryade (une spec DRH-17 ou un raffinage DRH-R-9) 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-R-9").

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).

Requirements

Requires Python: >=3.10
Details
PyPI
2026-10-24 16:12:35 +00:00
2
2026-10-27 02:22:09 +00:00
stationmyr
GPL-3.0-or-later
40 KiB
Assets (2)
Versions (5) View all
1.2.0 2026-11-01
0.0.0.dev0 2026-10-30
0.1.0.dev0 2026-10-30
1.1.0 2026-10-25
1.0.0 2026-10-24