reflex/tests/test_event.py
2023-02-09 11:33:18 -08:00

49 lines
1.2 KiB
Python

from pynecone.event import Event, EventHandler
from pynecone.var import Var
def make_var(value) -> Var:
"""Make a variable.
Args:
value: The value of the var.
Returns:
The var.
"""
var = Var.create(value)
assert var is not None
return var
def test_create_event():
"""Test creating an event."""
event = Event(token="token", name="state.do_thing", payload={"arg": "value"})
assert event.token == "token"
assert event.name == "state.do_thing"
assert event.payload == {"arg": "value"}
def test_call_event_handler():
"""Test that calling an event handler creates an event spec."""
def test_fn():
pass
def test_fn_with_args(_, arg1, arg2):
pass
handler = EventHandler(fn=test_fn)
event_spec = handler()
assert event_spec.handler == handler
assert event_spec.local_args == ()
assert event_spec.args == ()
handler = EventHandler(fn=test_fn_with_args)
event_spec = handler(make_var("first"), make_var("second"))
assert event_spec.handler == handler
assert event_spec.local_args == ()
assert event_spec.args == (("arg1", "first"), ("arg2", "second"))