from __future__ import annotations import unittest from uuid import uuid4 from web.sinks import WebEventSink class _Broker: def __init__(self) -> None: self.events: list[tuple] = [] def emit(self, task_id, event) -> None: self.events.append((task_id, event)) class WebEventSinkTests(unittest.TestCase): def test_done_is_deferred_to_worker_close(self) -> None: broker = _Broker() task_id = uuid4() sink = WebEventSink(broker, task_id) sink.emit({"type": "text", "delta": "ok"}) sink.emit({"type": "done"}) self.assertEqual(broker.events, [(task_id, {"type": "text", "delta": "ok"})]) if __name__ == "__main__": unittest.main()