orgmode-to-gemini-blog/test_utils.py
2025-05-13 10:41:40 +02:00

48 lines
No EOL
1.9 KiB
Python

import pytest
from utils.utils import slugify_title, find_year_and_slug_on_filename
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():
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__])