Files
dify/api/tests/unit_tests/events/test_events_package_compat.py

43 lines
1.0 KiB
Python

import pytest
from events import Events, EventsError, EventsException
def test_events_package_exposes_opensearchpy_compatible_events_class():
calls: list[str] = []
events = Events()
events.request_start += lambda: calls.append("start")
events.request_end += lambda: calls.append("end")
events.request_start()
events.request_end()
assert calls == ["start", "end"]
def test_events_package_supports_named_slots_iteration_removal_and_private_attrs():
calls: list[str] = []
def handler() -> None:
calls.append("handled")
events = Events("request_start")
events.request_start += handler
events.request_start += handler
assert len(events.request_start) == 2
assert list(events.request_start) == [handler, handler]
events.request_start -= handler
assert len(events.request_start) == 0
events.request_start()
assert calls == []
with pytest.raises(AttributeError):
_ = events._private # type: ignore[attr-defined]
assert EventsException is EventsError