thierryade-pytest (1.1.0)

Published 2026-10-25 19:37:56 +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 (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).

Requirements

Requires Python: >=3.10
Details
PyPI
2026-10-25 19:37:56 +00:00
81
2026-11-02 14:25:55 +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