36 lines
935 B
Python
36 lines
935 B
Python
import json
|
|
import time
|
|
|
|
from fenrirscreenreader.core import remoteInstanceRegistry
|
|
|
|
|
|
def test_write_instance_prunes_stale_registry_files(tmp_path, monkeypatch):
|
|
monkeypatch.setattr(
|
|
remoteInstanceRegistry, "get_registry_dir", lambda: str(tmp_path)
|
|
)
|
|
monkeypatch.setattr(
|
|
remoteInstanceRegistry,
|
|
"process_exists",
|
|
lambda pid: pid == 456,
|
|
)
|
|
|
|
stale_instance = tmp_path / "123.json"
|
|
stale_instance.write_text(
|
|
json.dumps(
|
|
{
|
|
"pid": 123,
|
|
"updated_at": time.time(),
|
|
}
|
|
)
|
|
+ "\n",
|
|
encoding="utf-8",
|
|
)
|
|
invalid_instance = tmp_path / "invalid.json"
|
|
invalid_instance.write_text("not json\n", encoding="utf-8")
|
|
|
|
remoteInstanceRegistry.write_instance({"pid": 456})
|
|
|
|
assert not stale_instance.exists()
|
|
assert not invalid_instance.exists()
|
|
assert (tmp_path / "456.json").exists()
|