mirror of
https://github.com/langgenius/dify.git
synced 2026-06-09 01:11:11 +08:00
43 lines
1.0 KiB
Python
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
|