* setup logger for hypercorn and dashboard * use logger.ini to setup dashboard logger * workaround: restore the hypercorn logger config - quart/hyercorn overwrites the logger config. as a workaround we restore the config at the beginning of a request * fix the hypercorn log handler only once * change proxy into a ASGI application - move Quart init from server.py into app.py - create Server class for config and loggin setup - restore hypercorn logging configuration after start of Quart/Hypercorn * move get_log_level into Server class * define config in test_emu_init_close * remove Web() instance from the testcase - with importing app.py The blueprint Web() will automatically created and a second call in test- cases must avoided * add unit tests * move code from app.py into server.py * test the init_logging_system() method * add HypercornLogHndl tests * fix deprecated pytest async warning - Cleanup pending async tasks - fix deprecated warning about event_loop * add unit test for error handling in build_config() * coverage: ignore quart template files * check print output in test_save_and_restore * update changelog
21 lines
573 B
Python
21 lines
573 B
Python
import pytest_asyncio
|
|
import asyncio
|
|
|
|
|
|
@pytest_asyncio.fixture
|
|
async def my_loop():
|
|
event_loop = asyncio.get_running_loop()
|
|
yield event_loop
|
|
|
|
# Collect all tasks and cancel those that are not 'done'.
|
|
tasks = asyncio.all_tasks(event_loop)
|
|
tasks = [t for t in tasks if not t.done()]
|
|
for task in tasks:
|
|
task.cancel()
|
|
|
|
# Wait for all tasks to complete, ignoring any CancelledErrors
|
|
try:
|
|
await asyncio.wait(tasks)
|
|
except asyncio.exceptions.CancelledError:
|
|
pass
|