Add artifact.data_logger/tests/test_core.py

This commit is contained in:
Mika 2026-04-03 10:57:06 +00:00
parent 63979723fe
commit 84d31f54a3

View file

@ -0,0 +1,66 @@
import json
import io
import sys
import pytest
from rich.console import Console
import artifact_data_logger.core as core
@pytest.fixture
def valid_metrics():
return {
"setup_fingerprint": "fp_12345",
"policy_hash": "ph_abcdef",
"epoch_ms": 1710000000000,
"near_expiry_unpinned": 0.05,
}
def test_log_metrics_stdout_output(valid_metrics, capsys):
run_id = "aux2_040"
core.log_metrics(run_id, valid_metrics)
captured = capsys.readouterr()
output = captured.out.strip()
assert run_id in output
for key, value in valid_metrics.items():
assert str(value) in output
def test_invalid_metrics_type_raises():
with pytest.raises((TypeError, KeyError, AssertionError)):
core.log_metrics("runX", {"setup_fingerprint": 123})
def test_missing_field_raises(valid_metrics):
bad_metrics = valid_metrics.copy()
bad_metrics.pop("policy_hash")
with pytest.raises((KeyError, AssertionError)):
core.log_metrics("runY", bad_metrics)
def test_epoch_ms_numeric(valid_metrics, capsys):
valid_metrics["epoch_ms"] = 999999
core.log_metrics("runZ", valid_metrics)
out = capsys.readouterr().out
assert "999999" in out
assert "policy_hash" in out
def test_near_expiry_float_range(valid_metrics):
valid_metrics["near_expiry_unpinned"] = 1.0
assert 0.0 <= valid_metrics["near_expiry_unpinned"] <= 1.0
core.log_metrics("runR", valid_metrics)
@pytest.mark.parametrize("field,value", [
("setup_fingerprint", None),
("policy_hash", None),
("epoch_ms", "notint"),
("near_expiry_unpinned", -0.1),
])
def test_invalid_field_values_raise(valid_metrics, field, value):
bad_metrics = valid_metrics.copy()
bad_metrics[field] = value
with pytest.raises(Exception):
core.log_metrics("runW", bad_metrics)