CycloneDX / CycloneDX/cyclonedx-python-lib

docs: explain model fixture and snapshot workflow

Fermée Adaptée aux débutants
#1,030 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
116
Forks
67
Merge moyen
8 j 2 h
PR mergées (30 j)
2

Description

### Description

The contributor documentation links to `tests/_data/snapshots/README.md`, but that file currently explains only how to regenerate snapshots. It does not explain how BOM model factories in `tests/_data/models.py` are discovered or how they feed the JSON, XML, and round-trip tests.

This gap came up in the maintainer guidance on #914: https://github.com/CycloneDX/cyclonedx-python-lib/pull/914#issuecomment-3562249425. The maintainer explicitly welcomed a dedicated documentation pull request.

### Proposed documentation

Document the existing workflow without changing test behavior:

- `get_bom_*` factory discovery and snapshot naming;
- `_invalid` fixtures;
- registration of deliberately incomplete dependency graphs;
- regenerating snapshots, reviewing only the intended files, and rerunning tests with snapshot recreation disabled.

### Acceptance

- The documented paths and collector names match the current default branch.
- The shared JSON/XML output and deserialization fixture tests pass.
- The full test suite remains green.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par tests/_data/snapshots/README.md et comparez ses instructions actuelles avec tests/_data/models.py ainsi qu’avec les tests partagés de fixtures de sortie et de désérialisation JSON/XML. Documentez la découverte actuelle des factories, le nommage des snapshots, les fixtures _invalid, les graphes de dépendances incomplets et le workflow de revue de la régénération ; le travail est considéré comme terminé lorsque les chemins et les noms des collectors correspondent à la default branch et que les tests spécifiés ainsi que la suite complète passent avec la recréation désactivée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
documentation, testing
Type d'issue
Documentation
Difficulté
2/5
Temps estimé
1-3 heures
Activité
Calme
Clarté
Clairement spécifiée
Accessibilité débutants
74/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.