test case for event related vars carrying _var_data
This commit is contained in:
parent
4fe8f1ad15
commit
67dcbeae26
@ -2,11 +2,18 @@ from typing import List
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from reflex import event
|
from reflex.event import (
|
||||||
from reflex.event import Event, EventHandler, EventSpec, call_event_handler, fix_events
|
Event,
|
||||||
|
EventChain,
|
||||||
|
EventHandler,
|
||||||
|
EventSpec,
|
||||||
|
call_event_handler,
|
||||||
|
event,
|
||||||
|
fix_events,
|
||||||
|
)
|
||||||
from reflex.state import BaseState
|
from reflex.state import BaseState
|
||||||
from reflex.utils import format
|
from reflex.utils import format
|
||||||
from reflex.vars.base import LiteralVar, Var
|
from reflex.vars.base import Field, LiteralVar, Var, field
|
||||||
|
|
||||||
|
|
||||||
def make_var(value) -> Var:
|
def make_var(value) -> Var:
|
||||||
@ -388,3 +395,28 @@ def test_event_actions_on_state():
|
|||||||
assert sp_handler.event_actions == {"stopPropagation": True}
|
assert sp_handler.event_actions == {"stopPropagation": True}
|
||||||
# should NOT affect other references to the handler
|
# should NOT affect other references to the handler
|
||||||
assert not handler.event_actions
|
assert not handler.event_actions
|
||||||
|
|
||||||
|
|
||||||
|
def test_event_var_data():
|
||||||
|
class S(BaseState):
|
||||||
|
x: Field[int] = field(0)
|
||||||
|
|
||||||
|
@event
|
||||||
|
def s(self, value: int):
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Handler doesn't have any _var_data because it's just a str
|
||||||
|
handler_var = Var.create(S.s)
|
||||||
|
assert handler_var._get_all_var_data() is None
|
||||||
|
|
||||||
|
# Ensure spec carries _var_data
|
||||||
|
spec_var = Var.create(S.s(S.x))
|
||||||
|
assert spec_var._get_all_var_data() == S.x._get_all_var_data()
|
||||||
|
|
||||||
|
# Needed to instantiate the EventChain
|
||||||
|
def _args_spec(value: Var[int]) -> tuple[Var[int]]:
|
||||||
|
return (value,)
|
||||||
|
|
||||||
|
# Ensure chain carries _var_data
|
||||||
|
chain_var = Var.create(EventChain(events=[S.s(S.x)], args_spec=_args_spec))
|
||||||
|
assert chain_var._get_all_var_data() == S.x._get_all_var_data()
|
||||||
|
Loading…
Reference in New Issue
Block a user