|
@@ -784,7 +784,7 @@ async def test_process_event_simple(test_state):
|
|
|
assert test_state.num1 == 69
|
|
|
|
|
|
# The delta should contain the changes, including computed vars.
|
|
|
- assert update.delta == {
|
|
|
+ assert update.delta.data == {
|
|
|
TestState.get_full_name(): {"num1": 69, "sum": 72.14},
|
|
|
GrandchildState3.get_full_name(): {"computed": ""},
|
|
|
}
|
|
@@ -811,7 +811,7 @@ async def test_process_event_substate(test_state, child_state, grandchild_state)
|
|
|
async for update in test_state._process(event):
|
|
|
assert child_state.value == "HI"
|
|
|
assert child_state.count == 24
|
|
|
- assert update.delta == {
|
|
|
+ assert update.delta.data == {
|
|
|
# TestState.get_full_name(): {"sum": 3.14, "upper": ""},
|
|
|
ChildState.get_full_name(): {"value": "HI", "count": 24},
|
|
|
GrandchildState3.get_full_name(): {"computed": ""},
|
|
@@ -827,7 +827,7 @@ async def test_process_event_substate(test_state, child_state, grandchild_state)
|
|
|
)
|
|
|
async for update in test_state._process(event):
|
|
|
assert grandchild_state.value2 == "new"
|
|
|
- assert update.delta == {
|
|
|
+ assert update.delta.data == {
|
|
|
# TestState.get_full_name(): {"sum": 3.14, "upper": ""},
|
|
|
GrandchildState.get_full_name(): {"value2": "new"},
|
|
|
GrandchildState3.get_full_name(): {"computed": ""},
|
|
@@ -849,11 +849,11 @@ async def test_process_event_generator():
|
|
|
async for update in gen:
|
|
|
count += 1
|
|
|
if count == 6:
|
|
|
- assert update.delta == {}
|
|
|
+ assert update.delta.data == {}
|
|
|
assert update.final
|
|
|
else:
|
|
|
assert gen_state.value == count
|
|
|
- assert update.delta == {
|
|
|
+ assert update.delta.data == {
|
|
|
GenState.get_full_name(): {"value": count},
|
|
|
}
|
|
|
assert not update.final
|
|
@@ -1069,7 +1069,7 @@ def test_not_dirty_computed_var_from_var(
|
|
|
interdependent_state: A state with varying Var dependencies.
|
|
|
"""
|
|
|
interdependent_state.x = 5
|
|
|
- assert interdependent_state.get_delta() == {
|
|
|
+ assert interdependent_state.get_delta().data == {
|
|
|
interdependent_state.get_full_name(): {"x": 5},
|
|
|
}
|
|
|
|
|
@@ -1084,7 +1084,7 @@ def test_dirty_computed_var_from_var(interdependent_state: InterdependentState)
|
|
|
interdependent_state: A state with varying Var dependencies.
|
|
|
"""
|
|
|
interdependent_state.v1 = 1
|
|
|
- assert interdependent_state.get_delta() == {
|
|
|
+ assert interdependent_state.get_delta().data == {
|
|
|
interdependent_state.get_full_name(): {"v1": 1, "v1x2": 2, "v1x2x2": 4},
|
|
|
}
|
|
|
|
|
@@ -1100,7 +1100,7 @@ def test_dirty_computed_var_from_backend_var(
|
|
|
# Accessing ._v3 returns the immutable var it represents instead of the actual computed var
|
|
|
# assert InterdependentState._v3._backend is True
|
|
|
interdependent_state._v2 = 2
|
|
|
- assert interdependent_state.get_delta() == {
|
|
|
+ assert interdependent_state.get_delta().data == {
|
|
|
interdependent_state.get_full_name(): {"v2x2": 4, "v3x2": 4},
|
|
|
}
|
|
|
|
|
@@ -1271,23 +1271,23 @@ def test_computed_var_cached_depends_on_non_cached():
|
|
|
|
|
|
cs = ComputedState()
|
|
|
assert cs.dirty_vars == set()
|
|
|
- assert cs.get_delta() == {cs.get_name(): {"no_cache_v": 0, "dep_v": 0}}
|
|
|
+ assert cs.get_delta().data == {cs.get_name(): {"no_cache_v": 0, "dep_v": 0}}
|
|
|
cs._clean()
|
|
|
assert cs.dirty_vars == set()
|
|
|
- assert cs.get_delta() == {cs.get_name(): {"no_cache_v": 0, "dep_v": 0}}
|
|
|
+ assert cs.get_delta().data == {cs.get_name(): {"no_cache_v": 0, "dep_v": 0}}
|
|
|
cs._clean()
|
|
|
assert cs.dirty_vars == set()
|
|
|
cs.v = 1
|
|
|
assert cs.dirty_vars == {"v", "comp_v", "dep_v", "no_cache_v"}
|
|
|
- assert cs.get_delta() == {
|
|
|
+ assert cs.get_delta().data == {
|
|
|
cs.get_name(): {"v": 1, "no_cache_v": 1, "dep_v": 1, "comp_v": 1}
|
|
|
}
|
|
|
cs._clean()
|
|
|
assert cs.dirty_vars == set()
|
|
|
- assert cs.get_delta() == {cs.get_name(): {"no_cache_v": 1, "dep_v": 1}}
|
|
|
+ assert cs.get_delta().data == {cs.get_name(): {"no_cache_v": 1, "dep_v": 1}}
|
|
|
cs._clean()
|
|
|
assert cs.dirty_vars == set()
|
|
|
- assert cs.get_delta() == {cs.get_name(): {"no_cache_v": 1, "dep_v": 1}}
|
|
|
+ assert cs.get_delta().data == {cs.get_name(): {"no_cache_v": 1, "dep_v": 1}}
|
|
|
cs._clean()
|
|
|
assert cs.dirty_vars == set()
|
|
|
|
|
@@ -2021,7 +2021,8 @@ async def test_state_proxy(grandchild_state: GrandchildState, mock_app: rx.App):
|
|
|
GrandchildState3.get_full_name(): {
|
|
|
"computed": "",
|
|
|
},
|
|
|
- }
|
|
|
+ },
|
|
|
+ reflex_delta_token="_" + grandchild_state.get_full_name(),
|
|
|
)
|
|
|
)
|
|
|
assert mcall.kwargs["to"] == grandchild_state.router.session.session_id
|
|
@@ -2189,7 +2190,8 @@ async def test_background_task_no_block(mock_app: rx.App, token: str):
|
|
|
"other",
|
|
|
],
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+ reflex_delta_token=token,
|
|
|
)
|
|
|
)
|
|
|
|
|
@@ -2227,7 +2229,8 @@ async def test_background_task_no_block(mock_app: rx.App, token: str):
|
|
|
"order": ["background_task:start"],
|
|
|
"computed_order": ["background_task:start"],
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+ reflex_delta_token=token + "_" + BackgroundTaskState.get_full_name(),
|
|
|
),
|
|
|
events=[],
|
|
|
final=True,
|
|
@@ -2239,7 +2242,8 @@ async def test_background_task_no_block(mock_app: rx.App, token: str):
|
|
|
BackgroundTaskState.get_full_name(): {
|
|
|
"computed_order": ["background_task:start"],
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+ reflex_delta_token=token + "_" + BackgroundTaskState.get_full_name(),
|
|
|
),
|
|
|
events=[],
|
|
|
final=True,
|
|
@@ -2252,7 +2256,8 @@ async def test_background_task_no_block(mock_app: rx.App, token: str):
|
|
|
"computed_order": exp_order,
|
|
|
"dict_list": {},
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+ reflex_delta_token=token + "_" + BackgroundTaskState.get_full_name(),
|
|
|
),
|
|
|
events=[],
|
|
|
final=True,
|
|
@@ -2263,7 +2268,8 @@ async def test_background_task_no_block(mock_app: rx.App, token: str):
|
|
|
BackgroundTaskState.get_full_name(): {
|
|
|
"computed_order": exp_order,
|
|
|
},
|
|
|
- }
|
|
|
+ },
|
|
|
+ reflex_delta_token=token,
|
|
|
),
|
|
|
events=[],
|
|
|
final=True,
|
|
@@ -2904,14 +2910,14 @@ async def test_preprocess(app_module_mock, token, test_state, expected, mocker):
|
|
|
updates.append(update)
|
|
|
assert len(updates) == 1
|
|
|
assert updates[0].delta[State.get_name()].pop("router") is not None
|
|
|
- assert updates[0].delta == exp_is_hydrated(state, False)
|
|
|
+ assert updates[0].delta.data == exp_is_hydrated(state, False)
|
|
|
|
|
|
events = updates[0].events
|
|
|
assert len(events) == 2
|
|
|
async for update in state._process(events[0]):
|
|
|
- assert update.delta == {test_state.get_full_name(): {"num": 1}}
|
|
|
+ assert update.delta.data == {test_state.get_full_name(): {"num": 1}}
|
|
|
async for update in state._process(events[1]):
|
|
|
- assert update.delta == exp_is_hydrated(state)
|
|
|
+ assert update.delta.data == exp_is_hydrated(state)
|
|
|
|
|
|
if isinstance(app.state_manager, StateManagerRedis):
|
|
|
await app.state_manager.close()
|
|
@@ -2952,16 +2958,16 @@ async def test_preprocess_multiple_load_events(app_module_mock, token, mocker):
|
|
|
updates.append(update)
|
|
|
assert len(updates) == 1
|
|
|
assert updates[0].delta[State.get_name()].pop("router") is not None
|
|
|
- assert updates[0].delta == exp_is_hydrated(state, False)
|
|
|
+ assert updates[0].delta.data == exp_is_hydrated(state, False)
|
|
|
|
|
|
events = updates[0].events
|
|
|
assert len(events) == 3
|
|
|
async for update in state._process(events[0]):
|
|
|
- assert update.delta == {OnLoadState.get_full_name(): {"num": 1}}
|
|
|
+ assert update.delta.data == {OnLoadState.get_full_name(): {"num": 1}}
|
|
|
async for update in state._process(events[1]):
|
|
|
- assert update.delta == {OnLoadState.get_full_name(): {"num": 2}}
|
|
|
+ assert update.delta.data == {OnLoadState.get_full_name(): {"num": 2}}
|
|
|
async for update in state._process(events[2]):
|
|
|
- assert update.delta == exp_is_hydrated(state)
|
|
|
+ assert update.delta.data == exp_is_hydrated(state)
|
|
|
|
|
|
if isinstance(app.state_manager, StateManagerRedis):
|
|
|
await app.state_manager.close()
|
|
@@ -3033,7 +3039,7 @@ async def test_get_state(mock_app: rx.App, token: str):
|
|
|
)
|
|
|
grandchild_state.value2 = "set_value"
|
|
|
|
|
|
- assert test_state.get_delta() == {
|
|
|
+ assert test_state.get_delta().data == {
|
|
|
GrandchildState.get_full_name(): {
|
|
|
"value2": "set_value",
|
|
|
},
|
|
@@ -3070,7 +3076,7 @@ async def test_get_state(mock_app: rx.App, token: str):
|
|
|
child_state2 = new_test_state.get_substate((ChildState2.get_name(),))
|
|
|
child_state2.value = "set_c2_value"
|
|
|
|
|
|
- assert new_test_state.get_delta() == {
|
|
|
+ assert new_test_state.get_delta().data == {
|
|
|
ChildState2.get_full_name(): {
|
|
|
"value": "set_c2_value",
|
|
|
},
|
|
@@ -3641,7 +3647,7 @@ def test_get_value():
|
|
|
"bar": "BAR",
|
|
|
}
|
|
|
}
|
|
|
- assert state.get_delta() == {}
|
|
|
+ assert state.get_delta().data == {}
|
|
|
|
|
|
state.bar = "foo"
|
|
|
|
|
@@ -3651,7 +3657,7 @@ def test_get_value():
|
|
|
"bar": "foo",
|
|
|
}
|
|
|
}
|
|
|
- assert state.get_delta() == {
|
|
|
+ assert state.get_delta().data == {
|
|
|
state.get_full_name(): {
|
|
|
"bar": "foo",
|
|
|
}
|
|
@@ -3774,7 +3780,7 @@ async def test_upcast_event_handler_arg(handler, payload):
|
|
|
"""
|
|
|
state = UpcastState()
|
|
|
async for update in state._process_event(handler, state, payload):
|
|
|
- assert update.delta == {UpcastState.get_full_name(): {"passed": True}}
|
|
|
+ assert update.delta.data == {UpcastState.get_full_name(): {"passed": True}}
|
|
|
|
|
|
|
|
|
@pytest.mark.asyncio
|