MCPcopy
hub / github.com/reflex-dev/reflex / test_set_and_get_state

Function test_set_and_get_state

tests/units/test_app.py:490–524  ·  view source on GitHub ↗

Test setting and getting the state of an app with different tokens. Args: test_state: The default state.

(test_state: type[ATestState])

Source from the content-addressed store, hash-verified

488
489@pytest.mark.asyncio
490async def test_set_and_get_state(test_state: type[ATestState]):
491 """Test setting and getting the state of an app with different tokens.
492
493 Args:
494 test_state: The default state.
495 """
496 app = App(_state=test_state)
497
498 # Create two tokens.
499 token1 = BaseStateToken(ident=str(uuid.uuid4()), cls=test_state)
500 token2 = BaseStateToken(ident=str(uuid.uuid4()), cls=test_state)
501
502 # Get the default state for each token.
503 state1 = await app.state_manager.get_state(token1)
504 state2 = await app.state_manager.get_state(token2)
505 assert isinstance(state1, test_state)
506 assert isinstance(state2, test_state)
507 assert state1.var == 0
508 assert state2.var == 0
509
510 # Set the vars to different values.
511 state1.var = 1
512 state2.var = 2
513 await app.state_manager.set_state(token1, state1)
514 await app.state_manager.set_state(token2, state2)
515
516 # Get the states again and check the values.
517 state1 = await app.state_manager.get_state(token1)
518 state2 = await app.state_manager.get_state(token2)
519 assert isinstance(state1, test_state)
520 assert isinstance(state2, test_state)
521 assert state1.var == 1
522 assert state2.var == 2
523
524 await app.state_manager.close()
525
526
527@pytest.mark.asyncio

Callers

nothing calls this directly

Calls 5

AppClass · 0.90
BaseStateTokenClass · 0.90
get_stateMethod · 0.45
set_stateMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected