eb8dbf66a1
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
"""Tests para extract_obsidian_embeds."""
|
|
|
|
from extract_obsidian_embeds import extract_obsidian_embeds
|
|
|
|
|
|
def test_solo_embeds_ignora_wikilinks():
|
|
# Golden path: mezcla de [[Nota normal]] y ![[imagen.jpg]] -> solo el embed.
|
|
body = "Texto con [[Nota normal]] y un embed ![[imagen.jpg]]."
|
|
assert extract_obsidian_embeds(body) == ["imagen.jpg"]
|
|
|
|
|
|
def test_varios_embeds_orden_y_dedup():
|
|
# Edge: varios embeds preservan orden y deduplican.
|
|
body = "![[a.jpg]] luego ![[b.pdf]] luego ![[a.jpg]] y ![[c.png]]"
|
|
assert extract_obsidian_embeds(body) == ["a.jpg", "b.pdf", "c.png"]
|
|
|
|
|
|
def test_quita_alias_y_ancla():
|
|
# Edge: alias (|) y heading/ancla (#) se descartan del target.
|
|
body = "![[imagen.jpg|300]] y ![[nota#Seccion]]"
|
|
assert extract_obsidian_embeds(body) == ["imagen.jpg", "nota"]
|
|
|
|
|
|
def test_nombre_con_espacios_y_parentesis():
|
|
# Edge: nombre de archivo real con espacios y parentesis se preserva.
|
|
body = "Mira ![[dni enmanuel (2).jpg]] adjunto."
|
|
assert extract_obsidian_embeds(body) == ["dni enmanuel (2).jpg"]
|
|
|
|
|
|
def test_sin_embeds_solo_wikilinks():
|
|
assert extract_obsidian_embeds("solo [[wikilink]] y [[otro|alias]]") == []
|
|
|
|
|
|
def test_body_vacio():
|
|
assert extract_obsidian_embeds("") == []
|