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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user