kiln_ai.pytest_test_output
1import re 2from datetime import datetime, timezone 3from pathlib import Path 4 5import pytest 6 7 8def test_output_root() -> Path: 9 return Path(__file__).resolve().parents[3] / "test_output" 10 11 12def make_test_output_dir(request: pytest.FixtureRequest) -> Path: 13 test_name = re.sub(r"[^\w\-]", "_", request.node.name) 14 param_id = "default" 15 if hasattr(request.node, "callspec") and request.node.callspec is not None: 16 id_attr = getattr(request.node.callspec, "id", None) 17 if id_attr is not None: 18 param_id = re.sub(r"[^\w\-]", "_", str(id_attr)) 19 timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H-%M-%S") 20 out_dir = test_output_root() / test_name / param_id / timestamp 21 out_dir.mkdir(parents=True, exist_ok=True) 22 return out_dir
def
test_output_root() -> pathlib._local.Path:
def
make_test_output_dir(request: _pytest.fixtures.FixtureRequest) -> pathlib._local.Path:
13def make_test_output_dir(request: pytest.FixtureRequest) -> Path: 14 test_name = re.sub(r"[^\w\-]", "_", request.node.name) 15 param_id = "default" 16 if hasattr(request.node, "callspec") and request.node.callspec is not None: 17 id_attr = getattr(request.node.callspec, "id", None) 18 if id_attr is not None: 19 param_id = re.sub(r"[^\w\-]", "_", str(id_attr)) 20 timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H-%M-%S") 21 out_dir = test_output_root() / test_name / param_id / timestamp 22 out_dir.mkdir(parents=True, exist_ok=True) 23 return out_dir