Source code for ewoksorange.tests.conftest
import gc
import logging
import warnings
import pytest
from ewoksorange.bindings.qtapp import qtapp_context
from ewoksorange.bindings.qtapp import get_all_qtwidgets
from ewoksorange.canvas.handler import OrangeCanvasHandler
from ewoksorange.orange_version import ORANGE_VERSION
from orangecontrib.ewokstest import enable_ewokstest_category
logger = logging.getLogger(__name__)
[docs]def global_cleanup_orange():
if ORANGE_VERSION == ORANGE_VERSION.oasys_fork:
pass
else:
from orangecanvas.document.suggestions import Suggestions
Suggestions.instance = None
[docs]def global_cleanup_pytest():
with warnings.catch_warnings():
warnings.simplefilter("ignore")
for obj in gc.get_objects():
if isinstance(obj, logging.LogRecord):
obj.exc_info = None # traceback keeps frames which keep locals
[docs]def collect_garbage(app):
app.processEvents()
while gc.collect():
app.processEvents()
[docs]@pytest.fixture(scope="session")
def qtapp():
enable_ewokstest_category()
with qtapp_context() as app:
assert app is not None
yield app
collect_garbage(app)
global_cleanup_orange()
global_cleanup_pytest()
collect_garbage(app)
warn_qtwidgets_alive()
[docs]@pytest.fixture(scope="session")
def raw_ewoks_orange_canvas(qtapp):
with OrangeCanvasHandler() as handler:
yield handler
[docs]@pytest.fixture()
def ewoks_orange_canvas(raw_ewoks_orange_canvas):
yield raw_ewoks_orange_canvas
try:
raw_ewoks_orange_canvas.scheme.ewoks_finalize()
except AttributeError:
pass