Переглянути джерело

ensure we have no unexpected logs in the tests

Rodja Trappe 2 роки тому
батько
коміт
dba688fac6
3 змінених файлів з 6 додано та 0 видалено
  1. 3 0
      nicegui/page.py
  2. 2 0
      tests/conftest.py
  3. 1 0
      tests/screen.py

+ 3 - 0
nicegui/page.py

@@ -3,6 +3,7 @@ from __future__ import annotations
 import asyncio
 import asyncio
 import inspect
 import inspect
 import time
 import time
+import traceback
 import types
 import types
 import uuid
 import uuid
 from dataclasses import dataclass
 from dataclasses import dataclass
@@ -99,6 +100,8 @@ class Page(jp.QuasarPage):
                         await self.page_ready_generator.asend(PageEvent(msg.websocket))
                         await self.page_ready_generator.asend(PageEvent(msg.websocket))
                     elif isinstance(self.page_ready_generator, types.GeneratorType):
                     elif isinstance(self.page_ready_generator, types.GeneratorType):
                         self.page_ready_generator.send(PageEvent(msg.websocket))
                         self.page_ready_generator.send(PageEvent(msg.websocket))
+            except (StopIteration, StopAsyncIteration):
+                pass  # after the page_ready_generator returns it will raise StopIteration; it's part oft the generator protocol and expected
             except:
             except:
                 globals.log.exception('Failed to execute page-ready')
                 globals.log.exception('Failed to execute page-ready')
             try:
             try:

+ 2 - 0
tests/conftest.py

@@ -61,4 +61,6 @@ def screen(selenium: webdriver.Chrome, request: pytest.FixtureRequest, caplog: p
     yield screen
     yield screen
     if screen.is_open:
     if screen.is_open:
         screen.shot(request.node.name)
         screen.shot(request.node.name)
+    logs = screen.caplog.get_records('call')
+    assert len(logs) == 0, f'There were unexpected logs:\n-------\n{logs}\n-------'
     screen.stop_server()
     screen.stop_server()

+ 1 - 0
tests/screen.py

@@ -171,3 +171,4 @@ class Screen:
         print('---------------', record.levelname, record.message)
         print('---------------', record.levelname, record.message)
         assert record.levelname == name, f'Expected "{name}" but got "{record.levelname}"'
         assert record.levelname == name, f'Expected "{name}" but got "{record.levelname}"'
         assert record.message == message, f'Expected "{message}" but got "{record.message}"'
         assert record.message == message, f'Expected "{message}" but got "{record.message}"'
+        self.caplog.records.clear()