mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 03:31:50 +02:00
test(bec_connector): BECConnector requires a QObject
This commit is contained in:
@ -93,7 +93,8 @@ class BECConnector:
|
|||||||
object_name = object_name or kwargs.pop("objectName", None)
|
object_name = object_name or kwargs.pop("objectName", None)
|
||||||
# Ensure the parent is always the first argument for QObject
|
# Ensure the parent is always the first argument for QObject
|
||||||
parent = kwargs.pop("parent", None)
|
parent = kwargs.pop("parent", None)
|
||||||
# This initializes the QObject or any qt related class
|
# This initializes the QObject or any qt related class BECConnector has to be used from this line down with QObject, otherwise hierarchy logic will not work
|
||||||
|
# TODO do a proper check if the class is a QObject -> issue #475
|
||||||
super().__init__(parent=parent, **kwargs)
|
super().__init__(parent=parent, **kwargs)
|
||||||
# BEC related connections
|
# BEC related connections
|
||||||
self.bec_dispatcher = BECDispatcher(client=client)
|
self.bec_dispatcher = BECDispatcher(client=client)
|
||||||
@ -187,7 +188,7 @@ class BECConnector:
|
|||||||
# Collect used names among siblings
|
# Collect used names among siblings
|
||||||
used_names = {sib.objectName() for sib in siblings if sib is not self}
|
used_names = {sib.objectName() for sib in siblings if sib is not self}
|
||||||
|
|
||||||
base_name = self.objectName()
|
base_name = self.object_name
|
||||||
if base_name not in used_names:
|
if base_name not in used_names:
|
||||||
# Name is already unique among siblings
|
# Name is already unique among siblings
|
||||||
return
|
return
|
||||||
@ -380,7 +381,7 @@ class BECConnector:
|
|||||||
def remove(self):
|
def remove(self):
|
||||||
"""Cleanup the BECConnector"""
|
"""Cleanup the BECConnector"""
|
||||||
# If the widget is attached to a dock, remove it from the dock.
|
# If the widget is attached to a dock, remove it from the dock.
|
||||||
# TODO this should be handled by dock and dock are not by BECConnector
|
# TODO this should be handled by dock and dock are not by BECConnector -> issue created #473
|
||||||
if self._parent_dock is not None:
|
if self._parent_dock is not None:
|
||||||
self._parent_dock.delete(self.object_name)
|
self._parent_dock.delete(self.object_name)
|
||||||
# If the widget is from Qt, trigger its close method.
|
# If the widget is from Qt, trigger its close method.
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
from qtpy.QtCore import QObject
|
||||||
from qtpy.QtWidgets import QApplication
|
from qtpy.QtWidgets import QApplication
|
||||||
|
|
||||||
from bec_widgets.utils import BECConnector
|
from bec_widgets.utils import BECConnector
|
||||||
@ -10,9 +11,12 @@ from bec_widgets.utils.error_popups import SafeSlot as Slot
|
|||||||
from .client_mocks import mocked_client
|
from .client_mocks import mocked_client
|
||||||
|
|
||||||
|
|
||||||
|
class BECConnectorQObject(BECConnector, QObject): ...
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def bec_connector(mocked_client):
|
def bec_connector(mocked_client):
|
||||||
connector = BECConnector(client=mocked_client)
|
connector = BECConnectorQObject(client=mocked_client)
|
||||||
return connector
|
return connector
|
||||||
|
|
||||||
|
|
||||||
@ -20,11 +24,11 @@ def test_bec_connector_init(bec_connector):
|
|||||||
assert bec_connector is not None
|
assert bec_connector is not None
|
||||||
assert bec_connector.client is not None
|
assert bec_connector.client is not None
|
||||||
assert isinstance(bec_connector, BECConnector)
|
assert isinstance(bec_connector, BECConnector)
|
||||||
assert bec_connector.config.widget_class == "BECConnector"
|
assert bec_connector.config.widget_class == "BECConnectorQObject"
|
||||||
|
|
||||||
|
|
||||||
def test_bec_connector_init_with_gui_id(mocked_client):
|
def test_bec_connector_init_with_gui_id(mocked_client):
|
||||||
bc = BECConnector(client=mocked_client, gui_id="test_gui_id")
|
bc = BECConnectorQObject(client=mocked_client, gui_id="test_gui_id")
|
||||||
assert bc.config.gui_id == "test_gui_id"
|
assert bc.config.gui_id == "test_gui_id"
|
||||||
assert bc.gui_id == "test_gui_id"
|
assert bc.gui_id == "test_gui_id"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user