eb8dbf66a1
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
"""Tests para slugify_obsidian_name."""
|
|
|
|
from slugify_obsidian_name import slugify_obsidian_name
|
|
|
|
|
|
def test_acentos_y_espacios():
|
|
# Golden path: transliteracion de acentos + espacios a kebab-case.
|
|
assert slugify_obsidian_name("Enmanuel Gutiérrez Pérez") == "enmanuel-gutierrez-perez"
|
|
|
|
|
|
def test_enye_se_mapea_a_n():
|
|
# Edge: la enye no la descompone NFKD, la mapeamos explicitamente.
|
|
assert slugify_obsidian_name("Jose manuel camaño castro") == "jose-manuel-camano-castro"
|
|
|
|
|
|
def test_mezcla_mayusculas_y_acentos():
|
|
assert slugify_obsidian_name("DNI de María del Mar") == "dni-de-maria-del-mar"
|
|
|
|
|
|
def test_simbolos_y_dobles_separadores():
|
|
# Edge: secuencias de no-alfanumericos colapsan a un solo '-', strip en bordes.
|
|
assert slugify_obsidian_name(" raro__nombre!! ") == "raro-nombre"
|
|
|
|
|
|
def test_string_vacio():
|
|
assert slugify_obsidian_name("") == ""
|
|
|
|
|
|
def test_solo_simbolos_devuelve_vacio():
|
|
# Edge: nada slugificable -> cadena vacia, sin guiones colgando.
|
|
assert slugify_obsidian_name("!!!---???") == ""
|