fix: URLs sœurs dérivées de l'environnement de l'agent — le menu inter-apps ne pointe plus la prod depuis la dev BUG-120
This commit is contained in:
@@ -53,6 +53,70 @@ def test_agent_explicite_prime(env_propre):
|
||||
assert draco_config.agent_url() == "https://agent.example.net"
|
||||
|
||||
|
||||
# ------------------------------------------------- BUG-120 : dérivation sœurs
|
||||
|
||||
def test_soeurs_derivees_depuis_agent_dev(env_propre):
|
||||
"""BUG-120 : avec **seul** ``AGENT_EVENEMENTS_URL`` en ``-dev``
|
||||
posé (aucune ``DRACO_<APP>_URL``), les URL sœurs servies suivent
|
||||
l'environnement de l'agent ; Gitea ne bouge jamais."""
|
||||
env_propre.setenv(
|
||||
"AGENT_EVENEMENTS_URL", "https://agent-dev.dracodev.net/api/v1/evenements")
|
||||
urls = draco_config.urls_publiques()
|
||||
assert urls["agent"] == "https://agent-dev.dracodev.net"
|
||||
assert urls["obsigate"] == "https://og-dev.dracodev.net"
|
||||
assert urls["flowdeck"] == "https://flowdeck-dev.dracodev.net"
|
||||
assert urls["tiktak"] == "https://tiktak-dev.dracodev.net"
|
||||
assert urls["kanbante"] == "https://kanbante-dev.dracodev.net"
|
||||
assert urls["gitea"] == "https://git.dracodev.net"
|
||||
|
||||
|
||||
def test_soeurs_derivees_depuis_draco_agent_url(env_propre):
|
||||
"""BUG-120 : la dérivation lit l'agent via ``agent_url()`` — un
|
||||
``DRACO_AGENT_URL`` en ``-dev`` suffit aussi."""
|
||||
env_propre.setenv("DRACO_AGENT_URL", "https://agent-dev.dracodev.net")
|
||||
assert draco_config.app_url("tiktak") == "https://tiktak-dev.dracodev.net"
|
||||
assert draco_config.app_url("obsigate") == "https://og-dev.dracodev.net"
|
||||
|
||||
|
||||
def test_soeur_explicite_prime_sur_derivation(env_propre):
|
||||
"""BUG-120 : une ``DRACO_<APP>_URL`` explicite gagne toujours sur
|
||||
la dérivation d'environnement ; les autres sœurs dérivent."""
|
||||
env_propre.setenv(
|
||||
"AGENT_EVENEMENTS_URL", "https://agent-dev.dracodev.net/api/v1/evenements")
|
||||
env_propre.setenv("DRACO_TIKTAK_URL", "https://taches.example.net/")
|
||||
assert draco_config.app_url("tiktak") == "https://taches.example.net"
|
||||
assert draco_config.app_url("flowdeck") == "https://flowdeck-dev.dracodev.net"
|
||||
assert draco_config.app_url("kanbante") == "https://kanbante-dev.dracodev.net"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("evenements", [
|
||||
"https://agent.example.net/api/v1/evenements", # autre domaine
|
||||
"https://agent-dev.example.com/api/v1/evenements", # suffixe hors dracodev.net
|
||||
"http://deepin.lab.home:8790/api/v1/evenements", # nom LAN + port
|
||||
"http://192.168.30.101:8790/api/v1/evenements", # IP + port
|
||||
"https://agent-dev.dracodev.net:8790/api/v1/evenements", # port exotique
|
||||
])
|
||||
def test_agent_hors_motif_aucune_derivation(env_propre, evenements):
|
||||
"""BUG-120 : hôte d'agent hors motif ``agent<SUFFIXE>.dracodev.net``
|
||||
→ **aucune dérivation** (jamais de lien deviné), défauts officiels."""
|
||||
env_propre.setenv("AGENT_EVENEMENTS_URL", evenements)
|
||||
urls = draco_config.urls_publiques()
|
||||
assert urls["obsigate"] == "https://og.dracodev.net"
|
||||
assert urls["flowdeck"] == "https://flowdeck.dracodev.net"
|
||||
assert urls["tiktak"] == "https://tiktak.dracodev.net"
|
||||
assert urls["kanbante"] == "https://kanbante.dracodev.net"
|
||||
assert urls["gitea"] == "https://git.dracodev.net"
|
||||
|
||||
|
||||
def test_agent_prod_suffixe_vide_defauts_officiels(env_propre):
|
||||
"""BUG-120 : hôte d'agent prod (suffixe vide) → les sœurs dérivées
|
||||
sont exactement les défauts officiels."""
|
||||
env_propre.setenv(
|
||||
"AGENT_EVENEMENTS_URL", "https://agent.dracodev.net/api/v1/evenements")
|
||||
for app, defaut in draco_config.DEFAUTS.items():
|
||||
assert draco_config.app_url(app) == defaut
|
||||
|
||||
|
||||
def test_journal_url_suit_la_config(env_propre):
|
||||
from backend import agent_journal
|
||||
|
||||
@@ -106,10 +170,15 @@ def test_url_affichage_reconstruite_depuis_config(env_propre, tmp_path):
|
||||
# ------------------------------------------------------------ injection hôte
|
||||
|
||||
def test_index_injecte_draco_urls(client, env_propre):
|
||||
"""L'hôte sert index.html avec window.DRACO_URLS issu de sa config."""
|
||||
"""L'hôte sert index.html avec window.DRACO_URLS issu de sa config.
|
||||
|
||||
BUG-120 : l'agent en ``-dev`` entraîne les sœurs en ``-dev``
|
||||
(dérivation d'environnement) — avant, ``tiktak`` restait en prod.
|
||||
"""
|
||||
env_propre.setenv("DRACO_AGENT_URL", "https://agent-dev.dracodev.net")
|
||||
resp = client.get("/")
|
||||
assert resp.status_code == 200
|
||||
assert "window.DRACO_URLS" in resp.text
|
||||
assert '"agent": "https://agent-dev.dracodev.net"' in resp.text
|
||||
assert '"tiktak": "https://tiktak.dracodev.net"' in resp.text
|
||||
assert '"tiktak": "https://tiktak-dev.dracodev.net"' in resp.text
|
||||
assert '"gitea": "https://git.dracodev.net"' in resp.text
|
||||
|
||||
Reference in New Issue
Block a user