import pytest from utils.utils import slugify_title, find_year_and_slug_on_filename, get_series_name 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 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(): """Test le bon slug""" 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}'" 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__])