Browse Source

ensure we have no unexpected logs in the tests

Rodja Trappe 2 years ago
parent
commit
dba688fac6
3 changed files with 6 additions and 0 deletions
  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 inspect
 import time
+import traceback
 import types
 import uuid
 from dataclasses import dataclass
@@ -99,6 +100,8 @@ class Page(jp.QuasarPage):
                         await self.page_ready_generator.asend(PageEvent(msg.websocket))
                     elif isinstance(self.page_ready_generator, types.GeneratorType):
                         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:
                 globals.log.exception('Failed to execute page-ready')
             try:

+ 2 - 0
tests/conftest.py

@@ -61,4 +61,6 @@ def screen(selenium: webdriver.Chrome, request: pytest.FixtureRequest, caplog: p
     yield screen
     if screen.is_open:
         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()

+ 1 - 0
tests/screen.py

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