feat(vues): slugify + build_view_url + parsing du jeton (#112)
This commit is contained in:
@@ -58,3 +58,41 @@ def test_views_table_lists_views():
|
||||
out = ui.views_table([_view(1, "Vue A", "filtres=a")])
|
||||
text = str(out)
|
||||
assert "Vue A" in text
|
||||
|
||||
|
||||
def test_slugify_accents_spaces_case():
|
||||
assert ui.slugify("Mes Marchés 2024") == "mes-marches-2024"
|
||||
|
||||
|
||||
def test_slugify_special_chars_collapse_and_trim():
|
||||
assert ui.slugify(" Éà!! --- test__ok ") == "ea-test-ok"
|
||||
|
||||
|
||||
def test_slugify_never_contains_underscore():
|
||||
assert "_" not in ui.slugify("a_b c")
|
||||
|
||||
|
||||
def test_slugify_empty():
|
||||
assert ui.slugify("") == ""
|
||||
assert ui.slugify(None) == ""
|
||||
|
||||
|
||||
def test_build_view_url_dev_domain(monkeypatch):
|
||||
# DOMAIN_NAME est résolu à l'import ; on patche l'attribut du module ui.
|
||||
monkeypatch.setattr(ui, "DOMAIN_NAME", "test.colibre.fr")
|
||||
url = ui.build_view_url("Mes Marchés", "abc123")
|
||||
assert url == "https://test.colibre.fr/tableau?vue=mes-marches_abc123"
|
||||
|
||||
|
||||
def test_build_view_url_empty_slug_omits_prefix(monkeypatch):
|
||||
monkeypatch.setattr(ui, "DOMAIN_NAME", "test.colibre.fr")
|
||||
url = ui.build_view_url("!!!", "abc123")
|
||||
assert url == "https://test.colibre.fr/tableau?vue=abc123"
|
||||
|
||||
|
||||
def test_token_from_vue_param():
|
||||
assert ui.token_from_vue_param("mes-marches-2024_abc123") == "abc123"
|
||||
assert ui.token_from_vue_param("zzz_abc123") == "abc123"
|
||||
assert ui.token_from_vue_param("abc123") == "abc123"
|
||||
assert ui.token_from_vue_param("") is None
|
||||
assert ui.token_from_vue_param(None) is None
|
||||
|
||||
Reference in New Issue
Block a user