From bf1791635f45d809980e84ae0e5b21299dc72ccd Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 18 Mar 2026 14:48:05 +0100 Subject: [PATCH] Ajout du lien observatoire dans titulaire_nom via add_links() #65 Co-Authored-By: Claude Sonnet 4.6 --- src/utils.py | 22 +++++++++++++++------- tests/test_main.py | 26 ++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/src/utils.py b/src/utils.py index 09eca00..d791cf9 100644 --- a/src/utils.py +++ b/src/utils.py @@ -62,6 +62,20 @@ def add_links(dff: pl.DataFrame): for col in ["uid", "acheteur_nom", "titulaire_nom", "acheteur_id", "titulaire_id"]: if col in dff.columns: if col.startswith("titulaire_"): + detail_link = ( + '' + + pl.col(col) + + "" + ) + if col == "titulaire_nom": + detail_link = ( + detail_link + + ' 📊' + ) dff = dff.with_columns( pl.when( pl.Expr.or_( @@ -69,13 +83,7 @@ def add_links(dff: pl.DataFrame): pl.col("titulaire_typeIdentifiant") == "SIRET", ) ) - .then( - '' - + pl.col(col) - + "" - ) + .then(detail_link) .otherwise(pl.col(col)) .alias(col) ) diff --git a/tests/test_main.py b/tests/test_main.py index 39b38a2..e3f77bb 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -111,3 +111,29 @@ def test_004_add_links_observatoire_acheteur(): # acheteur_id should NOT contain observatoire link assert "/observatoire" not in id_value + + +def test_005_add_links_observatoire_titulaire(): + import polars as pl + + from src.utils import add_links + + dff = pl.DataFrame( + { + "titulaire_id": ["t1"], + "titulaire_nom": ["TITULAIRE 1"], + "titulaire_typeIdentifiant": ["SIRET"], + } + ) + result = add_links(dff) + nom_value = result["titulaire_nom"][0] + id_value = result["titulaire_id"][0] + + # titulaire_nom should contain detail link + observatoire link + assert "/titulaires/t1" in nom_value + assert "TITULAIRE 1" in nom_value + assert "/observatoire?titulaire_id=t1" in nom_value + assert "📊" in nom_value + + # titulaire_id should NOT contain observatoire link + assert "/observatoire" not in id_value