Test setting and getting the state of an app with different tokens. Args: test_state: The default state.
(test_state: type[ATestState])
| 488 | |
| 489 | @pytest.mark.asyncio |
| 490 | async 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 |
nothing calls this directly
no test coverage detected