1
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2026-03-04 16:02:51 +01:00

fix(becconnector): sanitize the setObjectName from qobject inheritance

This commit is contained in:
2026-02-20 14:11:32 +01:00
committed by Jan Wyzula
parent c998e3ec48
commit 7de228a412
2 changed files with 14 additions and 0 deletions

View File

@@ -272,6 +272,8 @@ class BECConnector:
Args:
name (str): The new object name.
"""
# sanitize before setting to avoid issues with Qt object names and RPC namespaces
name = sanitize_namespace(name)
super().setObjectName(name)
self.object_name = name
if self.rpc_register.object_is_registered(self):

View File

@@ -39,6 +39,18 @@ def test_bec_connector_set_gui_id(bec_connector):
assert bec_connector.config.gui_id == "test_gui_id"
def test_bec_connector_sanitize_names(mocked_client):
class MyWidget(BECConnector, QWidget):
def __init__(self, parent=None, client=None, **kwargs):
super().__init__(parent=parent, client=client, **kwargs)
widget = MyWidget(client=mocked_client)
widget.setObjectName("Test Name With Spaces")
assert widget.objectName() == "Test_Name_With_Spaces"
widget.setObjectName("Test@Name#With$Special%Characters!")
assert widget.objectName() == "Test_Name_With_Special_Characters_"
def test_bec_connector_change_config(bec_connector):
bec_connector.on_config_update({"gui_id": "test_gui_id"})
assert bec_connector.config.gui_id == "test_gui_id"