1
0
Эх сурвалжийг харах

Merge pull request #1195 from zauberzeug/await_disconnect

allow awaiting disconnect without connected
Falko Schindler 1 жил өмнө
parent
commit
8206fb252f
2 өөрчлөгдсөн 17 нэмэгдсэн , 0 устгасан
  1. 2 0
      nicegui/client.py
  2. 15 0
      tests/test_page.py

+ 2 - 0
nicegui/client.py

@@ -104,6 +104,8 @@ class Client:
 
     async def disconnected(self, check_interval: float = 0.1) -> None:
         """Block execution until the client disconnects."""
+        if not self.environ:
+            await self.connected()
         self.is_waiting_for_disconnect = True
         while self.id in globals.clients:
             await asyncio.sleep(check_interval)

+ 15 - 0
tests/test_page.py

@@ -138,6 +138,21 @@ def test_wait_for_disconnect(screen: Screen):
     assert events == ['connected', 'disconnected', 'connected']
 
 
+def test_wait_for_disconnect_without_awaiting_connected(screen: Screen):
+    events = []
+
+    @ui.page('/')
+    async def page(client: Client):
+        await client.disconnected()
+        events.append('disconnected')
+
+    screen.open('/')
+    screen.wait(0.5)
+    screen.open('/')
+    screen.wait(0.5)
+    assert events == ['disconnected']
+
+
 def test_adding_elements_after_connected(screen: Screen):
     @ui.page('/')
     async def page(client: Client):