2025-02-27 22:59:57 +01:00
|
|
|
import pytest
|
2025-05-13 11:29:20 +02:00
|
|
|
from utils.utils import slugify_title, find_year_and_slug_on_filename, get_series_name
|
2025-05-13 10:41:40 +02:00
|
|
|
|
|
|
|
|
2025-05-13 11:29:20 +02:00
|
|
|
def find_serie_name_in_series():
|
|
|
|
"""Test que la fonction get_series_name retourne le nom de la série si l'article appartient à une série"""
|
|
|
|
found_serie = get_series_name("des-sauvegardes-qui-durent-mille-ans", "cipherbliss_blog")
|
|
|
|
assert found_serie == "workflows"
|
|
|
|
|
|
|
|
def do_not_find_serie_name_in_series():
|
|
|
|
"""Test que la fonction get_series_name retourne None si l'article n'appartient à aucune série"""
|
|
|
|
found_serie = get_series_name("des-sauvegardes-qui-durent-mille-ans", "tykayn_blog")
|
|
|
|
assert found_serie is None
|
|
|
|
|
2025-05-13 10:41:40 +02:00
|
|
|
def test_parse_file_slug_from_filename():
|
|
|
|
"""Test que slugify conserve les accents francophones"""
|
|
|
|
title = "20250125140244__dépasser-la-spécialisation.org"
|
|
|
|
expected = "dépasser-la-spécialisation"
|
|
|
|
date_str, annee, slug = find_year_and_slug_on_filename(title)
|
|
|
|
assert slug == expected, f"Expected '{expected}' but got '{slug}'"
|
|
|
|
|
|
|
|
def test_slug_without_accents():
|
2025-05-13 11:29:20 +02:00
|
|
|
"""Test le bon slug"""
|
2025-05-13 10:41:40 +02:00
|
|
|
title = "20111201T070237__dotclear-commenter-sans-tre-oblig-de-preview.org"
|
|
|
|
expected = "dotclear-commenter-sans-tre-oblig-de-preview"
|
|
|
|
date_str, annee, slug = find_year_and_slug_on_filename(title)
|
|
|
|
assert slug == expected, f"Expected '{expected}' but got '{slug}'"
|
|
|
|
|
2025-02-27 22:59:57 +01:00
|
|
|
|
|
|
|
def test_slugify_title_with_accents():
|
|
|
|
"""Test que slugify conserve les accents francophones"""
|
|
|
|
title = "Rétrospective du cul"
|
|
|
|
expected = "rétrospective-du-cul"
|
|
|
|
result = slugify_title(title)
|
|
|
|
assert result == expected, f"Expected '{expected}' but got '{result}'"
|
|
|
|
|
|
|
|
def test_slugify_title_various_cases():
|
|
|
|
"""Test slugify avec différents cas de figure"""
|
|
|
|
test_cases = [
|
|
|
|
("Hello World!", "hello-world"),
|
|
|
|
("L'été est là", "l-été-est-là"),
|
|
|
|
("100% Bio", "100-bio"),
|
|
|
|
("Spécial & Unique", "spécial-unique"),
|
|
|
|
("Multiple Spaces", "multiple-spaces"),
|
|
|
|
("émission télé", "émission-télé"),
|
|
|
|
("TOUT EN MAJUSCULES", "tout-en-majuscules"),
|
|
|
|
("mix OF cases", "mix-of-cases"),
|
|
|
|
("points...multiples...", "points-multiples"),
|
|
|
|
("Voilà l'été", "voilà-l-été"),
|
|
|
|
("Être ou ne pas être", "être-ou-ne-pas-être"),
|
|
|
|
("Ça c'est génial !", "ça-c-est-génial"),
|
|
|
|
]
|
|
|
|
|
|
|
|
for input_title, expected in test_cases:
|
|
|
|
result = slugify_title(input_title)
|
|
|
|
assert result == expected, f"Pour '{input_title}', attendu '{expected}' mais reçu '{result}'"
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
pytest.main([__file__])
|