Ajoute pyproject.toml (pytest strict markers, coverage fail_under=55), requirements-dev.txt (pytest-cov, pytest-xdist), et tests/conftest.py avec fixtures partagées (dossier_minimal, dossier_complet, controle_cpam). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
81 lines
2.3 KiB
Python
81 lines
2.3 KiB
Python
"""Fixtures partagées pour les tests T2A."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from src.config import (
|
|
ActeCCAM,
|
|
Antecedent,
|
|
BiologieCle,
|
|
Complication,
|
|
ControleCPAM,
|
|
Diagnostic,
|
|
DossierMedical,
|
|
Imagerie,
|
|
Sejour,
|
|
Traitement,
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def dossier_minimal() -> DossierMedical:
|
|
"""Dossier médical minimal : DP seul, pas de DAS/bio/imagerie."""
|
|
return DossierMedical(
|
|
source_file="test_minimal.pdf",
|
|
document_type="crh",
|
|
sejour=Sejour(sexe="M", age=65, duree_sejour=5),
|
|
diagnostic_principal=Diagnostic(
|
|
texte="Cholécystite aiguë",
|
|
cim10_suggestion="K81.0",
|
|
),
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def dossier_complet() -> DossierMedical:
|
|
"""Dossier médical enrichi : DP + DAS + bio + imagerie + traitements."""
|
|
return DossierMedical(
|
|
source_file="test_complet.pdf",
|
|
document_type="crh",
|
|
sejour=Sejour(sexe="M", age=65, duree_sejour=5, imc=31.2),
|
|
diagnostic_principal=Diagnostic(
|
|
texte="Cholécystite aiguë",
|
|
cim10_suggestion="K81.0",
|
|
),
|
|
diagnostics_associes=[
|
|
Diagnostic(texte="Iléus réflexe", cim10_suggestion="K56.0"),
|
|
],
|
|
actes_ccam=[
|
|
ActeCCAM(texte="Cholécystectomie", code_ccam_suggestion="HMFC004"),
|
|
],
|
|
biologie_cle=[
|
|
BiologieCle(test="CRP", valeur="180", anomalie=True),
|
|
BiologieCle(test="Créatinine", valeur="450", anomalie=True),
|
|
],
|
|
imagerie=[
|
|
Imagerie(type="Scanner abdominal", conclusion="Lithiase cholédocienne confirmée"),
|
|
],
|
|
traitements_sortie=[
|
|
Traitement(medicament="Augmentin IV", posologie="3g/j"),
|
|
Traitement(medicament="Morphine SC"),
|
|
],
|
|
antecedents=[
|
|
Antecedent(texte="HTA"),
|
|
Antecedent(texte="Diabète type 2"),
|
|
],
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def controle_cpam() -> ControleCPAM:
|
|
"""Contrôle CPAM de test avec codes contestés."""
|
|
return ControleCPAM(
|
|
numero_ogc=12345,
|
|
titre="Contestation du codage CIM-10",
|
|
arg_ucr="Le codage du DP K81.0 est contesté, proposition K80.2",
|
|
decision_ucr="Modification du DP",
|
|
dp_ucr="K80.2",
|
|
da_ucr="K56.0",
|
|
)
|