test_event.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from pynecone.event import Event, EventHandler
  2. from pynecone.var import Var
  3. def make_var(value) -> Var:
  4. """Make a variable.
  5. Args:
  6. value: The value of the var.
  7. Returns:
  8. The var.
  9. """
  10. var = Var.create(value)
  11. assert var is not None
  12. return var
  13. def test_create_event():
  14. """Test creating an event."""
  15. event = Event(token="token", name="state.do_thing", payload={"arg": "value"})
  16. assert event.token == "token"
  17. assert event.name == "state.do_thing"
  18. assert event.payload == {"arg": "value"}
  19. def test_call_event_handler():
  20. """Test that calling an event handler creates an event spec."""
  21. def test_fn():
  22. pass
  23. def test_fn_with_args(_, arg1, arg2):
  24. pass
  25. handler = EventHandler(fn=test_fn)
  26. event_spec = handler()
  27. assert event_spec.handler == handler
  28. assert event_spec.local_args == ()
  29. assert event_spec.args == ()
  30. handler = EventHandler(fn=test_fn_with_args)
  31. event_spec = handler(make_var("first"), make_var("second"))
  32. assert event_spec.handler == handler
  33. assert event_spec.local_args == ()
  34. assert event_spec.args == (("arg1", "first"), ("arg2", "second"))