Include test name in TSV log filenames

Concept spec calls for `<testname>.tsv`. Filename is now
`<testname>-<station>-<ts>.tsv` so reruns of the same test name
don't clobber prior runs and multiple stations stay distinguishable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alec K2XAP 2026-05-07 21:51:12 -04:00
parent d7b35b2f5c
commit c3bffec4ff
3 changed files with 21 additions and 3 deletions

View file

@ -11,9 +11,10 @@ class TsvLogger:
received: <ts> received <packet_id> <text> received: <ts> received <packet_id> <text>
""" """
def __init__(self, station: str, log_dir: str | Path = "."): def __init__(self, station: str, log_dir: str | Path = ".", test_name: str | None = None):
Path(log_dir).mkdir(parents=True, exist_ok=True) Path(log_dir).mkdir(parents=True, exist_ok=True)
path = Path(log_dir) / f"{station}-{int(time())}.tsv" prefix = f"{test_name}-{station}" if test_name else station
path = Path(log_dir) / f"{prefix}-{int(time())}.tsv"
self._fh: IO = open(path, "a", buffering=1) # line-buffered self._fh: IO = open(path, "a", buffering=1) # line-buffered
self.path = path self.path = path

View file

@ -117,7 +117,11 @@ class TestStation:
cues = cuesheet.build(cue_params) cues = cuesheet.build(cue_params)
print(f"[run] {len(cues)} cases, ~{(cues[-1].done_at - base_t) / 3600:.2f}h, base_t={base_t}") print(f"[run] {len(cues)} cases, ~{(cues[-1].done_at - base_t) / 3600:.2f}h, base_t={base_t}")
self._logger = TsvLogger(self.cfg.this_station_name, self.cfg.log_dir) self._logger = TsvLogger(
self.cfg.this_station_name,
self.cfg.log_dir,
test_name=params["name"],
)
try: try:
for cue in cues: for cue in cues:

View file

@ -35,3 +35,16 @@ def test_tsv_logger_creates_log_dir(tmp_path):
logger.close() logger.close()
assert sub.is_dir() assert sub.is_dir()
assert logger.path.exists() assert logger.path.exists()
def test_tsv_logger_filename_includes_test_name(tmp_path):
logger = TsvLogger("A", tmp_path, test_name="run42")
logger.close()
assert logger.path.name.startswith("run42-A-")
assert logger.path.name.endswith(".tsv")
def test_tsv_logger_filename_without_test_name(tmp_path):
logger = TsvLogger("A", tmp_path)
logger.close()
assert logger.path.name.startswith("A-")