test: cleanup to simplify testing

This commit is contained in:
2024-12-03 09:04:11 +01:00
parent 2e5ee7c5bd
commit 504794f86a
2 changed files with 40 additions and 11 deletions
@@ -211,6 +211,10 @@ class VSCodeDialog(QDialog):
self.setMinimumHeight(600)
self.layout = QVBoxLayout(self)
self.editor = editor
self.init_ui()
def init_ui(self):
"""Initialize the UI. Note: this makes the code easier to test."""
self.layout.addWidget(self.editor)
@@ -284,21 +288,43 @@ class ScriptBlock(BaseModel):
class UserScriptWidget(BECWidget, QWidget):
"""Dialog for displaying the fit summary and params for LMFit DAP processes"""
"""Dialog for displaying the fit summary and params for LMFit DAP processes."""
PLUGIN = True
USER_ACCESS = []
ICON_NAME = "manage_accounts"
def __init__(self, parent=None, client=None, config=None, gui_id: str | None = None):
""""""
def __init__(
self,
parent=None,
client=None,
config=None,
gui_id: str | None = None,
vs_code_editor=None,
bec_console=None,
):
"""
Initialize the widget
Args:
parent (QWidget): The parent widget
client (BECClient): The BEC client
config (dict): The configuration
gui_id (str): The GUI ID
vs_code_editor (VSCodeEditor): The VSCode editor, dep injection here makes makes testing easier, if None defaults to VSCodeEditor
bec_console (BECConsole): The BEC console, note this makes testing easier, if None defaults to BECConsole
"""
super().__init__(client=client, config=config, gui_id=gui_id, theme_update=True)
QWidget.__init__(self, parent=parent)
self.button_new_script = QPushButton(parent=self, text="New Script")
self.button_new_script.setObjectName("button_new_script")
self._vscode_editor = VSCodeEditor(parent=self, client=self.client, gui_id=self.gui_id)
self._console = BECConsole(parent=self)
if vs_code_editor is None:
vs_code_editor = VSCodeEditor(parent=self, client=self.client, gui_id=self.gui_id)
self._vscode_editor = vs_code_editor
if bec_console is None:
bec_console = BECConsole(parent=self)
self._console = bec_console
self.tree_widget = EnchancedQTreeWidget(parent=self)
self.layout = QVBoxLayout(self)
self.user_scripts = defaultdict(lambda: ScriptBlock)
+9 -6
View File
@@ -36,16 +36,19 @@ def user_script_widget(SCRIPTS, qtbot, mocked_client):
"USER": [SCRIPTS["dummy_script"]["fname"]],
"BEC": [SCRIPTS["dummy_script_with_args"]["fname"]],
}
mock_console = mock.MagicMock()
mock_vscode = mock.MagicMock()
with mock.patch(
"bec_widgets.widgets.editors.user_script.user_script.UserScriptWidget.get_script_files",
return_value=files,
):
with mock.patch("bec_widgets.widgets.editors.user_script.user_script", "BECConsole"):
with mock.patch("bec_widgets.widgets.editors.user_script.user_script", "VSCodeEditor"):
widget = UserScriptWidget(client=mocked_client)
qtbot.addWidget(widget)
qtbot.waitExposed(widget)
yield widget
with mock.patch("bec_widgets.widgets.editors.user_script.user_script.VSCodeDialog.init_ui"):
widget = UserScriptWidget(
client=mocked_client, vs_code_editor=mock_vscode, bec_console=mock_console
)
qtbot.addWidget(widget)
qtbot.waitExposed(widget)
yield widget
def test_user_script_widget_start_up(SCRIPTS, user_script_widget):