animetix-web / tests /scripts /test_vault_render.py
MissawB's picture
Upload folder using huggingface_hub (part 9)
630a0f3 verified
Raw History Blame Contribute Delete
2.53 kB
from scripts.vault.model import Consumer, FileEntry, PackageInfo, Provider, WiringReport
from scripts.vault.render import (
BANNIERE,
render_index,
render_package,
render_wiring,
slug,
)
def _paquet():
return PackageInfo(
key="backend/adapters/inference",
kind="backend",
files=[
FileEntry(path="backend/adapters/inference/z.py", loc=10),
FileEntry(path="backend/adapters/inference/a.py", loc=5),
],
imports_out={"backend/core/ports", "backend/core/domain"},
imports_in={"backend/api/animetix"},
)
def test_slug_remplace_les_separateurs():
assert slug("backend/adapters/inference") == "backend-adapters-inference"
def test_la_banniere_ouvre_chaque_note_generee():
assert render_package(_paquet()).startswith(BANNIERE)
def test_les_fichiers_sont_tries_par_chemin():
rendu = render_package(_paquet())
assert rendu.index("a.py") < rendu.index("z.py")
def test_les_dependances_sont_triees_et_en_wikiliens():
rendu = render_package(_paquet())
assert "[[backend-core-domain]]" in rendu
assert rendu.index("backend-core-domain") < rendu.index("backend-core-ports")
def test_une_section_vide_dit_rien():
vide = PackageInfo(key="backend/core/utils", kind="backend")
assert "- (rien)" in render_package(vide)
def test_le_total_de_lignes_est_affiche():
assert "15 lignes" in render_package(_paquet())
def test_le_rendu_est_stable():
assert render_package(_paquet()) == render_package(_paquet())
def test_le_cablage_liste_providers_et_consommateurs():
rapport = WiringReport(
providers=[
Provider(
chemin="core.game_service", nature="Singleton", cible="GameService"
)
],
consumers=[
Consumer(
fichier="backend/api/animetix/api/explore.py",
provider="core.feed_composer",
)
],
)
rendu = render_wiring(rapport)
assert "core.game_service" in rendu
assert "GameService" in rendu
assert "core.feed_composer" in rendu
assert rendu.startswith(BANNIERE)
def test_l_index_liste_les_paquets_tries_par_couche():
rendu = render_index(
[
PackageInfo(key="frontend/src/features/manga-reader", kind="frontend"),
PackageInfo(key="backend/core/domain", kind="backend"),
]
)
assert rendu.index("backend-core-domain") < rendu.index(
"frontend-src-features-manga-reader"
)