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

fix: add super().cleanup() in website widget, add testable methods for various smaller widgets

This commit is contained in:
2025-03-26 16:28:47 +01:00
parent 9aae8b706b
commit 0bb0d94fd7
5 changed files with 24 additions and 19 deletions

View File

@ -418,6 +418,12 @@ class BECProgressBar(RPCBase):
>>> progressbar.label_template = "$value / $percentage %"
"""
@rpc_call
def _get_label(self) -> str:
"""
Return the label text. mostly used for testing rpc.
"""
class BECQueue(RPCBase):
"""Widget to display the BEC queue."""
@ -433,9 +439,9 @@ class BECStatusBox(RPCBase):
"""An autonomous widget to display the status of BEC services."""
@rpc_call
def remove(self):
def get_server_state(self) -> "str":
"""
Cleanup the BECConnector
Get the state ("RUNNING", "BUSY", "IDLE", "ERROR") of the BEC server
"""
@ -1354,23 +1360,7 @@ class LMFitDialog(RPCBase):
class LogPanel(RPCBase):
"""Displays a log panel"""
@rpc_call
def set_plain_text(self, text: str) -> None:
"""
Set the plain text of the widget.
Args:
text (str): The text to set.
"""
@rpc_call
def set_html_text(self, text: str) -> None:
"""
Set the HTML text of the widget.
Args:
text (str): The text to set.
"""
...
class Minesweeper(RPCBase): ...

View File

@ -117,7 +117,9 @@ class WebsiteWidget(BECWidget, QWidget):
"""
Cleanup the widget
"""
self.website.page().deleteLater()
super().cleanup()
if __name__ == "__main__":

View File

@ -21,6 +21,7 @@ class BECProgressBar(BECWidget, QWidget):
"set_minimum",
"label_template",
"label_template.setter",
"_get_label",
]
ICON_NAME = "page_control"
@ -236,6 +237,10 @@ class BECProgressBar(BECWidget, QWidget):
(value - self._user_minimum) / (self._user_maximum - self._user_minimum) * self._maximum
)
def _get_label(self) -> str:
"""Return the label text. mostly used for testing rpc."""
return self.center_label.text()
if __name__ == "__main__": # pragma: no cover
app = QApplication(sys.argv)

View File

@ -80,6 +80,8 @@ class BECStatusBox(BECWidget, CompactPopupWidget):
service_update = Signal(BECServiceInfoContainer)
bec_core_state = Signal(str)
USER_ACCESS = ["get_server_state"]
def __init__(
self,
parent=None,
@ -168,6 +170,10 @@ class BECStatusBox(BECWidget, CompactPopupWidget):
self.set_global_state("emergency" if status == "NOTCONNECTED" else "success")
self.service_update.emit(self.status_container[self.box_name]["info"])
def get_server_state(self) -> str:
"""Get the state ("RUNNING", "BUSY", "IDLE", "ERROR") of the BEC server"""
return self.status_container[self.box_name]["info"].status
def _update_status_container(
self, service_name: str, status: BECStatus, info: dict, metrics: dict = None
) -> None:

View File

@ -380,6 +380,8 @@ class LogPanelToolbar(QWidget):
class LogPanel(TextBox):
"""Displays a log panel"""
USER_ACCESS = [] # Overwrite user access from TextBox
ICON_NAME = "terminal"
_new_messages = Signal()
service_list_update = Signal(dict, set)