1
0

test_component_future_annotations.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from __future__ import annotations
  2. from typing import Any
  3. from reflex.components.component import Component
  4. from reflex.event import EventHandler, input_event, no_args_event_spec
  5. # This is a repeat of its namesake in test_component.py.
  6. def test_custom_component_declare_event_handlers_in_fields():
  7. class ReferenceComponent(Component):
  8. def get_event_triggers(self) -> dict[str, Any]:
  9. """Test controlled triggers.
  10. Returns:
  11. Test controlled triggers.
  12. """
  13. return {
  14. **super().get_event_triggers(),
  15. "on_a": lambda e: [e],
  16. "on_b": lambda e: [e.target.value],
  17. "on_c": lambda e: [],
  18. "on_d": lambda: [],
  19. }
  20. class TestComponent(Component):
  21. on_a: EventHandler[lambda e0: [e0]]
  22. on_b: EventHandler[input_event]
  23. on_c: EventHandler[no_args_event_spec]
  24. on_d: EventHandler[no_args_event_spec]
  25. custom_component = ReferenceComponent.create()
  26. test_component = TestComponent.create()
  27. assert (
  28. custom_component.get_event_triggers().keys()
  29. == test_component.get_event_triggers().keys()
  30. )