"""Barre d'apps Flowdeck : aucun texte de chantier rendu hors commentaire. Defaut 5 : les lignes « Chantier 5 (fusion #69/#71, sans bump) : ... » etaient placees APRES la fermeture `#}` du commentaire Jinja d'en-tete de `app/templates/_draco_bar.html` (lignes 9-11) : elles etaient donc rendues telles quelles, juste au-dessus du
de la barre, sur toutes les pages (la barre est incluse par base.html). Test sans dependance (lecture du gabarit seul, comme test_draco_alertes.py) : il tourne sans serveur ni base, donc aussi en sandbox. La note documentaire peut vivre DANS le commentaire Jinja (jamais rendu) ; elle ne doit jamais en sortir. """ import re from pathlib import Path ROOT = Path(__file__).resolve().parent.parent def _hors_commentaires(texte): """Texte du gabarit sans les commentaires Jinja {# ... #}.""" return re.sub(r"\{#.*?#\}", "", texte, flags=re.S) def test_aucun_texte_chantier_rendu(): gabarit = (ROOT / "app/templates/_draco_bar.html").read_text() rendu = _hors_commentaires(gabarit) assert "Chantier 5 (fusion" not in rendu assert "sans bump" not in rendu # Aucune ligne de texte libre entre le commentaire d'en-tete et : # le rendu doit commencer (apres commentaires) par ou
. assert rendu.lstrip().startswith("")[0] assert nav.index('data-app="kanbante"') < nav.index('data-app="agent"') assert "Console Spark" in nav assert 'data-app="agent"' in nav assert 'class="draco-brand"' in rendu # L'entree « Console Spark » du menu de la marque est construite par # draco-barre.js depuis les onglets : l'onglet agent suffit a l'alimenter. js_barre = (ROOT / "static/js/vendor/draco-barre.js").read_text() assert "Console Spark" in js_barre