feat(infra): auto-commit con 88 cambios

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-11 00:16:46 +02:00
parent 6bc97df5c0
commit eb8dbf66a1
126 changed files with 10933 additions and 287 deletions
@@ -0,0 +1,67 @@
"""Tests para create_obsidian_note."""
import os
import pytest
from create_obsidian_note import create_obsidian_note
from read_obsidian_note import read_obsidian_note
def test_crea_nota_con_frontmatter_y_body(tmp_path):
# Golden path: crea nota con frontmatter + body y crea el subdir padre.
vault = str(tmp_path)
path = create_obsidian_note(
vault,
"Proyectos/Idea.md",
body="Primer apunte. [[Proyecto X]].",
frontmatter={"title": "Idea", "tags": ["inbox"]},
)
assert os.path.isfile(path)
assert path.endswith("Proyectos/Idea.md")
note = read_obsidian_note(path)
assert note["frontmatter"]["title"] == "Idea"
assert note["tags"] == ["inbox"]
assert "Primer apunte" in note["body"]
assert note["wikilinks"] == ["Proyecto X"]
def test_anade_extension_md_si_falta(tmp_path):
# Edge: rel_path sin extension -> se le anade .md.
path = create_obsidian_note(str(tmp_path), "Inbox/Nota rapida", body="x")
assert path.endswith("Nota rapida.md")
assert os.path.isfile(path)
def test_crea_directorios_padre(tmp_path):
# Edge: crea toda la jerarquia de carpetas que no existe.
path = create_obsidian_note(str(tmp_path), "a/b/c/Honda.md", body="y")
assert os.path.isfile(path)
assert os.path.isdir(os.path.join(str(tmp_path), "a", "b", "c"))
def test_existente_sin_overwrite_lanza_fileexistserror(tmp_path):
# Error path: la nota ya existe y overwrite=False (default).
create_obsidian_note(str(tmp_path), "Dup.md", body="original")
with pytest.raises(FileExistsError):
create_obsidian_note(str(tmp_path), "Dup.md", body="nuevo")
def test_overwrite_true_sobreescribe(tmp_path):
# Edge: overwrite=True reemplaza el contenido y devuelve la misma ruta.
p1 = create_obsidian_note(str(tmp_path), "Dup.md", body="original")
p2 = create_obsidian_note(
str(tmp_path), "Dup.md", body="reemplazado", overwrite=True
)
assert p1 == p2
note = read_obsidian_note(p2)
assert note["body"].strip() == "reemplazado"
def test_destino_directorio_lanza_isadirectoryerror(tmp_path):
# Error path: el destino resuelto ya es un directorio.
target = tmp_path / "EsCarpeta.md"
target.mkdir()
with pytest.raises(IsADirectoryError):
create_obsidian_note(str(tmp_path), "EsCarpeta.md", body="x")