import logging from datetime import datetime, timezone from uuid import uuid4 import pytest from dynalab_core.buffer import ValueBuffer from dynalab_core.dlpak import DLPak from dynalab_core.protocols.packets.handshake import SignalDescriptor def test_dlpak_logs_written_archive(caplog: pytest.LogCaptureFixture, tmp_path) -> None: signal = SignalDescriptor(id=uuid4(), name="Signal", type="number") buffer = ValueBuffer() buffer.append(1, signal.id, 2.0) package = DLPak() package.set_data(buffer) package.set_manifest(datetime.now(timezone.utc), [signal]) with caplog.at_level(logging.INFO, logger="dynalab_core"): package.write(tmp_path, "recording") record = next( record for record in caplog.records if getattr(record, "event", None) == "dlpak.written" ) assert record.output_filename == "recording.dlpak" assert record.sample_count == 1 assert record.signal_count == 1