cuando termines y verifica que esté todo subido
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
"""Tests para unregister_obsidian_vault."""
|
||||
|
||||
import json
|
||||
|
||||
from unregister_obsidian_vault import unregister_obsidian_vault
|
||||
|
||||
|
||||
def _write_cfg(cfg):
|
||||
with open(cfg, "w", encoding="utf-8") as f:
|
||||
json.dump(
|
||||
{
|
||||
"extra": "preservar",
|
||||
"appVersionLastUsed": "1.5.3",
|
||||
"vaults": {
|
||||
"aaaaaaaaaaaaaaaa": {"path": "/a/Alpha", "ts": 100, "open": True},
|
||||
"bbbbbbbbbbbbbbbb": {"path": "/b/Beta", "ts": 200, "open": False},
|
||||
},
|
||||
},
|
||||
f,
|
||||
)
|
||||
|
||||
|
||||
def _read(cfg):
|
||||
with open(cfg, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
|
||||
|
||||
def test_desregistra_por_path(tmp_path):
|
||||
# Golden path: quita la entrada cuya 'path' coincide con la ruta dada.
|
||||
cfg = str(tmp_path / "obsidian.json")
|
||||
_write_cfg(cfg)
|
||||
|
||||
res = unregister_obsidian_vault("/a/Alpha", config_path=cfg)
|
||||
assert res["removed"] is True
|
||||
assert res["id"] == "aaaaaaaaaaaaaaaa"
|
||||
assert res["path"] == "/a/Alpha"
|
||||
assert res["backup_path"] == cfg + ".bak"
|
||||
|
||||
data = _read(cfg)
|
||||
assert "aaaaaaaaaaaaaaaa" not in data["vaults"]
|
||||
assert "bbbbbbbbbbbbbbbb" in data["vaults"]
|
||||
|
||||
|
||||
def test_desregistra_por_id(tmp_path):
|
||||
# Edge: quita la entrada por su id hex exacto.
|
||||
cfg = str(tmp_path / "obsidian.json")
|
||||
_write_cfg(cfg)
|
||||
|
||||
res = unregister_obsidian_vault("bbbbbbbbbbbbbbbb", config_path=cfg)
|
||||
assert res["removed"] is True
|
||||
assert res["id"] == "bbbbbbbbbbbbbbbb"
|
||||
assert res["path"] == "/b/Beta"
|
||||
|
||||
data = _read(cfg)
|
||||
assert "bbbbbbbbbbbbbbbb" not in data["vaults"]
|
||||
|
||||
|
||||
def test_preserva_resto_del_json_al_quitar_entrada(tmp_path):
|
||||
# Edge: las demas claves y vaults sobreviven al desregistro.
|
||||
cfg = str(tmp_path / "obsidian.json")
|
||||
_write_cfg(cfg)
|
||||
|
||||
unregister_obsidian_vault("/a/Alpha", config_path=cfg)
|
||||
|
||||
data = _read(cfg)
|
||||
assert data["extra"] == "preservar"
|
||||
assert data["appVersionLastUsed"] == "1.5.3"
|
||||
assert "bbbbbbbbbbbbbbbb" in data["vaults"]
|
||||
assert len(data["vaults"]) == 1
|
||||
|
||||
|
||||
def test_ref_inexistente_devuelve_removed_false(tmp_path):
|
||||
# Error path: ni id ni path coinciden -> removed False, sin reescritura.
|
||||
cfg = str(tmp_path / "obsidian.json")
|
||||
_write_cfg(cfg)
|
||||
|
||||
res = unregister_obsidian_vault("/no/existe", config_path=cfg)
|
||||
assert res["removed"] is False
|
||||
assert res["id"] == ""
|
||||
assert res["backup_path"] == ""
|
||||
|
||||
data = _read(cfg)
|
||||
assert len(data["vaults"]) == 2
|
||||
Reference in New Issue
Block a user