You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

13 lines
1.0 KiB

from pathlib import Path
from src.config_loader import UnifiedLogSettings
from src.models import UnifiedEvent,PersonAnalysisRecord,SessionSummary,LogConsistencyIssue
from src.unified_event_logger import UnifiedEventLogger
def test_four_csvs_bom_json_dedup(tmp_path:Path)->None:
c=UnifiedLogSettings(True,str(tmp_path),True,True,True,True,1,True,True,True,True,False,False,"",True)
l=UnifiedEventLogger(c,"exp","sid","stamp");l.open()
e=UnifiedEvent("exp","sid","id","system","x",None,1,"t",1.,metadata={"日本語":""})
l.write_events([e,e]);r=PersonAnalysisRecord("exp","sid",1);l.write_analysis([r,r]);s=SessionSummary("exp","sid","t");l.write_session(s);l.write_session(s);l.write_issues([LogConsistencyIssue("unknown","warning",1,None,"m",{"":""})]);l.close();l.close()
assert len(list(tmp_path.glob("*.csv")))==4
assert all(p.read_bytes().startswith(b"\xef\xbb\xbf") for p in tmp_path.glob("*.csv"))
assert "日本語" in (tmp_path/"stamp_exp_unified_events.csv").read_text(encoding="utf-8-sig")