Some checks failed
E2E Tests / e2e (push) Waiting to run
Tests unitaires / Web (Angular · vitest + couverture) (push) Successful in 26s
Build & Push Images / tests (push) Failing after 13s
Build & Push Images / build (brain) (push) Has been skipped
Build & Push Images / build (core) (push) Has been skipped
Build & Push Images / build (web) (push) Has been skipped
Build & Push Images / build-switcher (push) Has been skipped
Tests unitaires / Brain (Python · pytest + couverture) (push) Successful in 1m12s
Tests unitaires / Core (Java · mvn test + JaCoCo) (push) Failing after 1m28s
Mise en place de tests unitaires coté Python et Angular Mise en place de la couverture de test directement dans le workflow : le programme ne build pas si jamais un test échoue Passage en v0.16.2 en conséquence
53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
"""Tests de la logique portée par les modèles de domaine (app.domain.models)."""
|
|
from __future__ import annotations
|
|
|
|
from app.domain.models import (
|
|
ArcProposal,
|
|
CampaignImportResult,
|
|
ChapterProposal,
|
|
ExtractedDocument,
|
|
ExtractedPage,
|
|
RulesImportResult,
|
|
SceneProposal,
|
|
)
|
|
|
|
|
|
def test_extracted_document_properties():
|
|
doc = ExtractedDocument(pages=[
|
|
ExtractedPage(index=0, text="page un", used_ocr=False),
|
|
ExtractedPage(index=1, text="page deux", used_ocr=True),
|
|
ExtractedPage(index=2, text=" ", used_ocr=False), # vide → exclue de full_text
|
|
])
|
|
assert doc.page_count == 3
|
|
assert doc.ocr_page_count == 1
|
|
assert doc.full_text == "page un\n\npage deux"
|
|
|
|
|
|
def test_rules_import_result_to_markdown():
|
|
result = RulesImportResult(
|
|
sections={"Combat": "règles de combat", "Magie": "règles de magie"},
|
|
page_count=10, ocr_page_count=0,
|
|
)
|
|
md = result.to_markdown()
|
|
assert "## Combat\n\nrègles de combat" in md
|
|
assert "## Magie\n\nrègles de magie" in md
|
|
assert md.endswith("\n")
|
|
|
|
|
|
def test_campaign_import_result_counts():
|
|
arcs = [
|
|
ArcProposal("A1", "", chapters=[
|
|
ChapterProposal("C1", "", scenes=[SceneProposal("S1", ""), SceneProposal("S2", "")]),
|
|
ChapterProposal("C2", "", scenes=[SceneProposal("S3", "")]),
|
|
]),
|
|
ArcProposal("A2", "", chapters=[]),
|
|
]
|
|
result = CampaignImportResult(arcs=arcs, page_count=1, ocr_page_count=0)
|
|
assert result.counts() == (2, 2, 3)
|
|
|
|
|
|
def test_arc_proposal_defaults():
|
|
arc = ArcProposal("Acte", "synopsis")
|
|
assert arc.arc_type == "LINEAR"
|
|
assert arc.chapters == []
|