Kaynağa Gözat

add basic test for session allows async pages

Rodja Trappe 2 yıl önce
ebeveyn
işleme
019e41eaaa
1 değiştirilmiş dosya ile 16 ekleme ve 1 silme
  1. 16 1
      tests/test_session.py

+ 16 - 1
tests/test_session.py

@@ -23,7 +23,22 @@ def test_session_data_is_stored_in_the_browser(screen: Screen):
     screen.should_contain('3')
     screen.open('/session')
     screen.should_contain('count = 3')
-    # assert screen.selenium.g(f'http://localhost:{PORT}/session').json() == 3
+
+
+def test_session_storage_supports_asyncio(screen: Screen):
+    @ui.page('/')
+    async def page():
+        ui.session.get()['count'] = ui.session.get().get('count', 0) + 1
+        await asyncio.sleep(0.5)
+        ui.label(ui.session.get()['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')
 
     #     ui.input('name').bind_value(request.session, 'key')