31 lines
717 B
Python
31 lines
717 B
Python
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()
|