unit tests working with redis

This commit is contained in:
Masen Furer 2024-11-26 22:51:53 -08:00
parent 7624e3bb2f
commit 50d01278de
No known key found for this signature in database
GPG Key ID: B0008AD22B3B3A95
3 changed files with 12 additions and 9 deletions

View File

@ -1959,6 +1959,9 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
if var in self.base_vars or var in self._backend_vars: if var in self.base_vars or var in self._backend_vars:
self._was_touched = True self._was_touched = True
break break
if var == constants.ROUTER_DATA and self.parent_state is None:
self._was_touched = True
break
def _get_was_touched(self) -> bool: def _get_was_touched(self) -> bool:
"""Check current dirty_vars and flag to determine if state instance was modified. """Check current dirty_vars and flag to determine if state instance was modified.

View File

@ -1007,9 +1007,9 @@ async def test_dynamic_route_var_route_change_completed_on_load(
substate_token = _substate_key(token, DynamicState) substate_token = _substate_key(token, DynamicState)
sid = "mock_sid" sid = "mock_sid"
client_ip = "127.0.0.1" client_ip = "127.0.0.1"
state = await app.state_manager.get_state(substate_token) async with app.state_manager.modify_state(substate_token) as state:
state.router_data = {"simulate": "hydrated"} state.router_data = {"simulate": "hydrated"}
assert state.dynamic == "" assert state.dynamic == ""
exp_vals = ["foo", "foobar", "baz"] exp_vals = ["foo", "foobar", "baz"]
def _event(name, val, **kwargs): def _event(name, val, **kwargs):
@ -1181,8 +1181,6 @@ async def test_process_events(mocker, token: str):
"ip": "127.0.0.1", "ip": "127.0.0.1",
} }
app = App(state=GenState) app = App(state=GenState)
state = await app.state_manager.get_state(_substate_key(token, GenState))
state.router_data = {"simulate": "hydrated"}
mocker.patch.object(app, "_postprocess", AsyncMock()) mocker.patch.object(app, "_postprocess", AsyncMock())
event = Event( event = Event(
@ -1191,6 +1189,8 @@ async def test_process_events(mocker, token: str):
payload={"c": 5}, payload={"c": 5},
router_data=router_data, router_data=router_data,
) )
async with app.state_manager.modify_state(event.substate_token) as state:
state.router_data = {"simulate": "hydrated"}
async for _update in process(app, event, "mock_sid", {}, "127.0.0.1"): async for _update in process(app, event, "mock_sid", {}, "127.0.0.1"):
pass pass

View File

@ -2815,8 +2815,8 @@ async def test_preprocess(app_module_mock, token, test_state, expected, mocker):
app = app_module_mock.app = App( app = app_module_mock.app = App(
state=State, load_events={"index": [test_state.test_handler]} state=State, load_events={"index": [test_state.test_handler]}
) )
state = await app.state_manager.get_state(_substate_key(token, State)) async with app.state_manager.modify_state(_substate_key(token, State)) as state:
state.router_data = {"simulate": "hydrate"} state.router_data = {"simulate": "hydrate"}
updates = [] updates = []
async for update in rx.app.process( async for update in rx.app.process(
@ -2863,8 +2863,8 @@ async def test_preprocess_multiple_load_events(app_module_mock, token, mocker):
state=State, state=State,
load_events={"index": [OnLoadState.test_handler, OnLoadState.test_handler]}, load_events={"index": [OnLoadState.test_handler, OnLoadState.test_handler]},
) )
state = await app.state_manager.get_state(_substate_key(token, State)) async with app.state_manager.modify_state(_substate_key(token, State)) as state:
state.router_data = {"simulate": "hydrate"} state.router_data = {"simulate": "hydrate"}
updates = [] updates = []
async for update in rx.app.process( async for update in rx.app.process(