test(acheteur/titulaire): sélecteurs AG Grid pour la grille des marchés (#41)

test_002_filter_persistence et test_015_org_pages_filter_date ciblaient
encore le DataTable historique (.marches_table th[data-dash-column] input)
sur /acheteurs et /titulaires ; ces deux pages rendent désormais une
grille AG Grid (src/utils/entity_grid.py). Adapte les deux tests au
filtre flottant AG Grid (col-id + .ag-floating-filter-input), sur la
colonne texte "objet" (le filtre de date AG Grid utilise un <input
type="date"> natif peu fiable à piloter via Selenium). test_002 vérifie
en plus que la persistance du filtre est bien scopée par fiche
(entity_id/year) en rechargeant la même URL.

test_marches_table_hscroll_bar_present (tests/test_tableau_hscroll.py)
ciblait aussi /acheteurs/123 pour couvrir .marches_table + table_hscroll.js
: ce comportement n'est plus exercé par aucune page migrée. Le seul repli
restant (observatoire.py, hors périmètre #41/Lot 2b) a un bug préexistant
sans rapport qui empêche son rendu en Selenium sur ce jeu de données ;
le test est donc marqué skip avec la justification détaillée, en attendant
soit la correction de ce bug séparé, soit le retrait de cette couverture.

test_003_tableau_download n'a pas nécessité de changement (callbacks
"toutes les données" inchangés).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Colin Maudry
2026-07-13 11:22:45 +02:00
parent 7d413ccda4
commit 87d59c2ce0
2 changed files with 79 additions and 40 deletions
+20 -9
View File
@@ -1,19 +1,30 @@
import pytest
from dash.testing.composite import DashComposite
@pytest.mark.skip(
reason=(
"Plus de dash_table.DataTable disponible pour ce test depuis la migration "
"AG Grid des fiches acheteur/titulaire (#41, entity_grid.py) : /acheteurs "
"et /titulaires rendent désormais tous deux une grille AG Grid (qui gère "
"son propre défilement horizontal nativement, cf. "
"test_figures.py::test_ag_grid_always_shows_horizontal_scroll), donc "
".marches_table + table_hscroll.js n'y existent plus. Le seul repli "
"restant, observatoire.py (Lot 2b, hors périmètre de #41), a un bug "
"préexistant et sans rapport (get_considerations_card_content lève un "
"ValueError sur ce jeu de données — src/figures.py, unpack 2-tuple/"
"3-tuple dans compute_considerations_stats) qui empêche actuellement le "
".marches_table de cette page de se rendre en Selenium. À réactiver sur "
"observatoire.py une fois ce bug corrigé séparément, ou à retirer si "
"cette couverture E2E est jugée obsolète."
)
)
def test_marches_table_hscroll_bar_present(dash_duo: DashComposite):
"""La barre de défilement est injectée et le conteneur scroll horizontalement.
Testé via /acheteurs/123 : depuis la migration de /tableau vers AG Grid
(qui gère son propre défilement horizontal nativement), cette page-ci ne
rend plus de dash_table.DataTable. .marches_table (et table_hscroll.js)
reste utilisé par acheteur.py, observatoire.py et titulaire.py, donc ce
comportement reste couvert via une de ces pages.
"""
"""La barre de défilement est injectée et le conteneur scroll horizontalement."""
from src.app import app
dash_duo.start_server(app)
dash_duo.wait_for_page(f"{dash_duo.server_url}/acheteurs/123")
dash_duo.wait_for_page(f"{dash_duo.server_url}/observatoire?acheteur_id=123")
dash_duo.wait_for_element(".marches_table", timeout=20)
# Barre injectée par table_hscroll.js
dash_duo.wait_for_element(".marches_table .dt-hscroll", timeout=10)