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:
 9def test_output_root() -> Path:
10    return Path(__file__).resolve().parents[3] / "test_output"
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