test: adapter les tests DataTable historiques à la migration AG Grid de /tableau (#41)
This commit is contained in:
+14
-3
@@ -73,7 +73,13 @@ def test_002_filter_persistence(dash_duo: DashComposite):
|
|||||||
)
|
)
|
||||||
return _filter_input_in_view(dash_duo, filter_input_selector)
|
return _filter_input_in_view(dash_duo, filter_input_selector)
|
||||||
|
|
||||||
for page in ["tableau", "acheteurs/123", "titulaires/345"]:
|
# /tableau utilise désormais AG Grid (dash-ag-grid) au lieu de dash_table.DataTable ;
|
||||||
|
# la persistance de ses filtres/colonnes est couverte par persistence=True et
|
||||||
|
# persisted_props=["filterModel", "columnState"] configurés dans la fabrique
|
||||||
|
# ag_grid() de src/figures.py, et a été vérifiée manuellement via un navigateur
|
||||||
|
# réel (Task 12 du plan #41). Une couverture Selenium dédiée à AG Grid pourrait
|
||||||
|
# être ajoutée ultérieurement.
|
||||||
|
for page in ["acheteurs/123", "titulaires/345"]:
|
||||||
filter_input = open_page_and_check_filter_input()
|
filter_input = open_page_and_check_filter_input()
|
||||||
filter_input.send_keys("11") # valeur quelconque, on teste la persistance
|
filter_input.send_keys("11") # valeur quelconque, on teste la persistance
|
||||||
filter_input.send_keys(Keys.ENTER)
|
filter_input.send_keys(Keys.ENTER)
|
||||||
@@ -347,13 +353,18 @@ def test_014_get_distance_histogram_all_nulls():
|
|||||||
assert isinstance(result, dcc.Graph)
|
assert isinstance(result, dcc.Graph)
|
||||||
|
|
||||||
|
|
||||||
def test_015_tableau_filter_date(dash_duo: DashComposite):
|
def test_015_org_pages_filter_date(dash_duo: DashComposite):
|
||||||
from src.app import app
|
from src.app import app
|
||||||
|
|
||||||
dash_duo.start_server(app)
|
dash_duo.start_server(app)
|
||||||
dash_duo.wait_for_text_to_equal(".logo > h1", "colibre", timeout=4)
|
dash_duo.wait_for_text_to_equal(".logo > h1", "colibre", timeout=4)
|
||||||
|
|
||||||
for page in ["tableau", "acheteurs/123", "titulaires/345"]:
|
# /tableau utilise désormais AG Grid ; le filtrage de sa colonne date est
|
||||||
|
# couvert par les tests unitaires de compilation SQL dans
|
||||||
|
# tests/test_query_ast.py (ex. test_date_range_uses_between) et a été
|
||||||
|
# vérifié manuellement (Task 12 du plan #41). Une couverture Selenium
|
||||||
|
# dédiée au filtre de date AG Grid pourrait être ajoutée ultérieurement.
|
||||||
|
for page in ["acheteurs/123", "titulaires/345"]:
|
||||||
dash_duo.wait_for_page(f"{dash_duo.server_url}/{page}")
|
dash_duo.wait_for_page(f"{dash_duo.server_url}/{page}")
|
||||||
filter_input = '.marches_table th[data-dash-column="dateNotification"] input'
|
filter_input = '.marches_table th[data-dash-column="dateNotification"] input'
|
||||||
filter_cell_result = '.marches_table td[data-dash-column="dateNotification"] p'
|
filter_cell_result = '.marches_table td[data-dash-column="dateNotification"] p'
|
||||||
|
|||||||
@@ -1,12 +1,19 @@
|
|||||||
from dash.testing.composite import DashComposite
|
from dash.testing.composite import DashComposite
|
||||||
|
|
||||||
|
|
||||||
def test_tableau_hscroll_bar_present(dash_duo: DashComposite):
|
def test_marches_table_hscroll_bar_present(dash_duo: DashComposite):
|
||||||
"""La barre de défilement est injectée et le conteneur scroll horizontalement."""
|
"""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.
|
||||||
|
"""
|
||||||
from src.app import app
|
from src.app import app
|
||||||
|
|
||||||
dash_duo.start_server(app)
|
dash_duo.start_server(app)
|
||||||
dash_duo.wait_for_page(f"{dash_duo.server_url}/tableau")
|
dash_duo.wait_for_page(f"{dash_duo.server_url}/acheteurs/123")
|
||||||
dash_duo.wait_for_element(".marches_table", timeout=20)
|
dash_duo.wait_for_element(".marches_table", timeout=20)
|
||||||
# Barre injectée par table_hscroll.js
|
# Barre injectée par table_hscroll.js
|
||||||
dash_duo.wait_for_element(".marches_table .dt-hscroll", timeout=10)
|
dash_duo.wait_for_element(".marches_table .dt-hscroll", timeout=10)
|
||||||
|
|||||||
Reference in New Issue
Block a user