from modjam.log import TsvLogger def test_tsv_logger_writes_all_event_types(tmp_path): logger = TsvLogger("Z", tmp_path) logger.queued(42, 915.1, 500.0, 7, 5, 22) logger.sent(42, 13, "1234.5,0.0,1|abc") logger.received(99, "1234.5,1.0,2|xyz") logger.close() rows = logger.path.read_text().strip().split("\n") assert len(rows) == 3 parts0 = rows[0].split("\t") assert parts0[1] == "queued" assert parts0[2] == "42" assert parts0[3] == "915.1,500.0,7,5,22" parts1 = rows[1].split("\t") assert parts1[1] == "sent" assert parts1[2] == "42" assert parts1[3] == "13" assert parts1[4] == "1234.5,0.0,1|abc" parts2 = rows[2].split("\t") assert parts2[1] == "received" assert parts2[2] == "99" assert parts2[3] == "1234.5,1.0,2|xyz" def test_tsv_logger_creates_log_dir(tmp_path): sub = tmp_path / "nested" / "logs" logger = TsvLogger("A", sub) logger.queued(1, 0, 0, 0, 0, 0) logger.close() assert sub.is_dir() 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-")