0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 03:31:50 +02:00

wip(conftest): scope function for gui client object.

This commit is contained in:
2025-04-15 20:47:19 +02:00
parent 6f1a472128
commit 0e27bf50c2

View File

@ -32,16 +32,21 @@ def gui_id():
return f"figure_{random.randint(0,100)}" # make a new gui id each time, to ensure no 'gui is alive' zombie key can perturbate return f"figure_{random.randint(0,100)}" # make a new gui id each time, to ensure no 'gui is alive' zombie key can perturbate
@pytest.fixture @pytest.fixture(scope="function")
def connected_client_gui_obj(gui_id, bec_client_lib): def connected_client_gui_obj(qtbot, gui_id, bec_client_lib):
""" """
Fixture to create a new BECGuiClient object and start a server in the background. Fixture to create a new BECGuiClient object and start a server in the background.
This fixture should be used if a new gui instance is needed for each test. This fixture should be used if a new gui instance is needed for each test.
""" """
def _check_gui_has_bec():
return hasattr(gui, "bec") and gui.bec is not None
gui = BECGuiClient(gui_id=gui_id) gui = BECGuiClient(gui_id=gui_id)
try: try:
gui.start(wait=True) gui.start(wait=True)
qtbot.waitUntil(_check_gui_has_bec, timeout=7000)
yield gui yield gui
finally: finally:
gui.kill_server() gui.kill_server()