cai/tests/continuous_ops/test_log_maintenance.py

35 lines
920 B
Python

"""Log retention maintenance for continuous ops."""
import time
from pathlib import Path
from cai.continuous_ops.log_maintenance import maintain_log_tree
def test_maintain_log_tree_deletes_very_old(tmp_path: Path) -> None:
full = tmp_path / "full"
full.mkdir(parents=True)
old = full / "old.log"
old.write_text("x", encoding="utf-8")
ts = time.time() - 20 * 86400
import os
os.utime(old, (ts, ts))
maintain_log_tree(tmp_path, now=time.time())
assert not old.exists()
def test_maintain_log_tree_compresses_week_two(tmp_path: Path) -> None:
full = tmp_path / "full"
full.mkdir(parents=True)
mid = full / "mid.log"
mid.write_text("hello", encoding="utf-8")
ts = time.time() - 10 * 86400
import os
os.utime(mid, (ts, ts))
maintain_log_tree(tmp_path, now=time.time())
assert not mid.exists()
gz = full / "mid.log.gz"
assert gz.is_file()