31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
import json
|
|
|
|
from browser_cli.registry import load_registry, save_registry, update_registry
|
|
|
|
|
|
def test_load_registry_tolerates_trailing_garbage_from_old_non_atomic_writes(tmp_path):
|
|
registry = tmp_path / "registry.json"
|
|
registry.write_text('{"main": "/tmp/.browser_cli/main.sock"}"}', encoding="utf-8")
|
|
|
|
assert load_registry(registry) == {"main": "/tmp/.browser_cli/main.sock"}
|
|
|
|
|
|
def test_update_registry_repairs_corrupted_registry_and_preserves_entries(tmp_path):
|
|
registry = tmp_path / "registry.json"
|
|
registry.write_text('{"main": "/tmp/.browser_cli/main.sock"}"}', encoding="utf-8")
|
|
|
|
update_registry("work", "/tmp/.browser_cli/work.sock", registry)
|
|
|
|
assert json.loads(registry.read_text(encoding="utf-8")) == {
|
|
"main": "/tmp/.browser_cli/main.sock",
|
|
"work": "/tmp/.browser_cli/work.sock",
|
|
}
|
|
|
|
|
|
def test_save_registry_writes_valid_json_atomically(tmp_path):
|
|
registry = tmp_path / "registry.json"
|
|
|
|
save_registry({"main": "/tmp/main.sock"}, registry)
|
|
|
|
assert json.loads(registry.read_text(encoding="utf-8")) == {"main": "/tmp/main.sock"}
|