feat: experiment log append/read utilities and rich viewer

This commit is contained in:
2026-04-04 14:31:45 +02:00
parent 02d44d30be
commit 8fdbd81a05
3 changed files with 133 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
import sys, os, json, tempfile, pytest
sys.path.insert(0, 'bin')
from log_append import append_entry, read_entries, LOG_PATH
def test_append_creates_file(tmp_path):
log = str(tmp_path / "log.jsonl")
append_entry({"project": "test"}, path=log)
assert os.path.exists(log)
def test_append_writes_valid_json(tmp_path):
log = str(tmp_path / "log.jsonl")
append_entry({"project": "x", "kept": True}, path=log)
with open(log) as f:
data = json.loads(f.read().strip())
assert data["project"] == "x"
assert data["kept"] is True
def test_append_adds_timestamp(tmp_path):
log = str(tmp_path / "log.jsonl")
append_entry({"project": "x"}, path=log)
with open(log) as f:
data = json.loads(f.read().strip())
assert "ts" in data
def test_append_multiple_entries(tmp_path):
log = str(tmp_path / "log.jsonl")
for i in range(3):
append_entry({"n": i}, path=log)
entries = read_entries(path=log)
assert len(entries) == 3
assert entries[1]["n"] == 1
def test_read_entries_empty_if_no_file(tmp_path):
log = str(tmp_path / "nonexistent.jsonl")
assert read_entries(path=log) == []
def test_read_entries_skips_malformed_lines(tmp_path):
log = str(tmp_path / "log.jsonl")
with open(log, 'w') as f:
f.write('{"project": "ok"}\n')
f.write('not-valid-json\n')
f.write('{"project": "also-ok"}\n')
entries = read_entries(path=log)
assert len(entries) == 2