zcbot/tests/test_web_sinks.py

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()