Kanbante 0.45.9 : tests barre v0.3.0 (verbatim commons, résolution Hub, profil-lien)
This commit is contained in:
@@ -38,8 +38,12 @@ def _nettoyer(monkeypatch):
|
|||||||
|
|
||||||
|
|
||||||
def test_barre_css_js_verbatim_commons_v020():
|
def test_barre_css_js_verbatim_commons_v020():
|
||||||
assert _sha256("static/css/draco-barre.css") == SHA256_CSS_V020
|
# Remplacé en 0.45.9 : la re-vendange v0.3.0 (HUB-1) supersède
|
||||||
assert _sha256("static/js/draco-barre.js") == SHA256_JS_V020
|
# les empreintes v0.2.0 — les empreintes courantes sont
|
||||||
|
# verrouillées par tests/test_barre_v030.py. On garde ici la
|
||||||
|
# preuve que les fichiers ont bien quitté la v0.2.0.
|
||||||
|
assert _sha256("static/css/draco-barre.css") != SHA256_CSS_V020
|
||||||
|
assert _sha256("static/js/draco-barre.js") != SHA256_JS_V020
|
||||||
|
|
||||||
|
|
||||||
def test_logo_shaarit_verbatim():
|
def test_logo_shaarit_verbatim():
|
||||||
|
|||||||
@@ -0,0 +1,89 @@
|
|||||||
|
"""Barre commune v0.3.0 (HUB-1, fusion #115) — re-vendange 0.45.9.
|
||||||
|
|
||||||
|
- CSS/JS vendangés VERBATIM depuis dracodev-commons, branche
|
||||||
|
hub-menu-compte-v0-3-0 (PR commons #9), ui/barre-apps/.
|
||||||
|
- Menu compte : liens Hub (Télécharger, À Propos, Aides) et
|
||||||
|
Profil devenu lien vers <hub>/profil. Point explicite du
|
||||||
|
chantier : Kanbante traitait l'action relayée « profil » vers
|
||||||
|
sa page /profile propre — ce comportement est REMPLACÉ par le
|
||||||
|
lien Hub (un seul Profil, celui du Hub). La branche
|
||||||
|
onAction("profil") du gabarit est retirée ; la page /profile
|
||||||
|
elle-même continue d'exister. « Déconnexion » reste relayée.
|
||||||
|
- URL Hub résolue par le même mécanisme que les autres apps
|
||||||
|
(explicite DRACO_HUB_URL > hôte de la requête > dérivation par
|
||||||
|
l'agent > défaut officiel), exposée au gabarit (draco_urls.hub)
|
||||||
|
et passée en urls.hub de DRACO_BAR_CONFIG.
|
||||||
|
"""
|
||||||
|
import hashlib
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
R = Path(__file__).resolve().parents[1]
|
||||||
|
|
||||||
|
# Empreintes SHA-256 de la source commons v0.3.0
|
||||||
|
# (Projets/dracodev-commons, ui/barre-apps/, branche
|
||||||
|
# hub-menu-compte-v0-3-0 @ff92ece).
|
||||||
|
SHA256_CSS_V030 = "4ac2ed2ee04549f40c71e5700149271d5b07b04e4ab88073e94328fcbf9475b0"
|
||||||
|
SHA256_JS_V030 = "9d84617bfb4346d6a17d769da83d04ebc9bc38d40962c58dd7347f13a6c74da5"
|
||||||
|
|
||||||
|
_ENV_BARRE = (
|
||||||
|
"DRACO_SSO_URL", "DRACO_FLOWDECK_URL", "DRACO_TIKTAK_URL",
|
||||||
|
"DRACO_SHAARIT_URL", "DRACO_HUB_URL", "KANBANTE_PUBLIC_URL",
|
||||||
|
"AGENT_URL", "AGENT_EVENEMENTS_URL",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _sha256(chemin):
|
||||||
|
return hashlib.sha256((R / chemin).read_bytes()).hexdigest()
|
||||||
|
|
||||||
|
|
||||||
|
def _nettoyer(monkeypatch):
|
||||||
|
for nom in _ENV_BARRE:
|
||||||
|
monkeypatch.delenv(nom, raising=False)
|
||||||
|
|
||||||
|
|
||||||
|
def test_barre_css_js_verbatim_commons_v030():
|
||||||
|
assert _sha256("static/css/draco-barre.css") == SHA256_CSS_V030
|
||||||
|
assert _sha256("static/js/draco-barre.js") == SHA256_JS_V030
|
||||||
|
|
||||||
|
|
||||||
|
def test_js_liens_hub_et_profil_lien():
|
||||||
|
js = (R / "static/js/draco-barre.js").read_text(encoding="utf-8")
|
||||||
|
assert 'hub: "https://hub.dracodev.net/"' in js
|
||||||
|
assert 'hub: "https://hub-dev.dracodev.net/"' in js
|
||||||
|
assert '"telecharger", "Télécharger"' in js
|
||||||
|
assert '"a-propos", "À Propos"' in js
|
||||||
|
assert '"aide", "Aides"' in js
|
||||||
|
assert '"profil", "Profil"' in js
|
||||||
|
assert "data-hub-link" in js
|
||||||
|
assert 'data-compte-act", "profil"' not in js
|
||||||
|
assert 'data-compte-act", "deconnexion"' in js
|
||||||
|
|
||||||
|
|
||||||
|
def test_gabarit_branche_hub_et_retire_profil_relaye():
|
||||||
|
gabarit = (R / "app/templates/_draco_bar.html").read_text(encoding="utf-8")
|
||||||
|
assert 'urls: { hub: "{{ draco_urls.hub }}/" }' in gabarit
|
||||||
|
# La branche relayée vers /profile a disparu du onAction…
|
||||||
|
assert 'if (act === "profil")' not in gabarit
|
||||||
|
# …mais la déconnexion relayée est intacte.
|
||||||
|
assert 'if (act === "deconnexion") { location.href = "/logout"; return; }' \
|
||||||
|
in gabarit
|
||||||
|
|
||||||
|
|
||||||
|
def test_hub_resolution_meme_mecanisme(monkeypatch):
|
||||||
|
_nettoyer(monkeypatch)
|
||||||
|
from app.config import resoudre_urls_draco
|
||||||
|
assert resoudre_urls_draco().hub_url == "https://hub.dracodev.net"
|
||||||
|
assert resoudre_urls_draco("kanbante-dev.dracodev.net").hub_url == \
|
||||||
|
"https://hub-dev.dracodev.net"
|
||||||
|
assert resoudre_urls_draco("kanbante.dracodev.net").hub_url == \
|
||||||
|
"https://hub.dracodev.net"
|
||||||
|
monkeypatch.setenv("DRACO_HUB_URL", "https://hub.example.net/")
|
||||||
|
assert resoudre_urls_draco("kanbante-dev.dracodev.net").hub_url == \
|
||||||
|
"https://hub.example.net"
|
||||||
|
|
||||||
|
|
||||||
|
def test_page_profile_existe_toujours():
|
||||||
|
# La page propre à Kanbante n'est pas supprimée : seul le
|
||||||
|
# menu compte de la barre ne la cible plus.
|
||||||
|
main = (R / "app/main.py").read_text(encoding="utf-8")
|
||||||
|
assert '@app.get("/profile")' in main
|
||||||
Reference in New Issue
Block a user