12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import asyncio
- from uuid import uuid4
- from nicegui import Client, app, ui
- from .screen import Screen
- def test_session_data_is_stored_in_the_browser(screen: Screen):
- @ui.page('/')
- def page():
- app.storage.session['count'] = app.storage.session.get('count', 0) + 1
- ui.label(app.storage.session['count'] or 'no session')
- @app.get('/session')
- def session():
- return 'count = ' + str(app.storage.session['count'])
- screen.open('/')
- screen.should_contain('1')
- screen.open('/')
- screen.should_contain('2')
- screen.open('/')
- screen.should_contain('3')
- screen.open('/session')
- screen.should_contain('count = 3')
- def test_session_storage_supports_asyncio(screen: Screen):
- @ui.page('/')
- async def page():
- app.storage.session['count'] = app.storage.session.get('count', 0) + 1
- await asyncio.sleep(0.5)
- ui.label(app.storage.session['count'] or 'no session')
- screen.open('/')
- screen.switch_to(1)
- screen.open('/')
- screen.should_contain('2')
- screen.switch_to(0)
- screen.open('/')
- screen.should_contain('3')
- def test_session_modifications_after_page_load(screen: Screen):
- @ui.page('/')
- async def page(client: Client):
- await client.connected()
- try:
- app.storage.session['test'] = 'data'
- except TypeError as e:
- ui.label(str(e))
- screen.open('/')
- screen.should_contain('response to the browser has already been build')
|