From 92d1332a4a38c716124f8a564758c4b8c48771b4 Mon Sep 17 00:00:00 2001 From: lauramurgatroyd Date: Tue, 21 Nov 2023 09:08:55 +0000 Subject: [PATCH 1/6] Fix issues with unit tests --- eqt/ui/SessionDialogs.py | 2 +- test/test_MainWindowWithSessionManagement.py | 46 +------------ ..._MainWindowWithSessionManagementDialogs.py | 68 +++++++++++++++++++ test/test_SessionDialogs.py | 4 ++ 4 files changed, 74 insertions(+), 46 deletions(-) create mode 100644 test/test_MainWindowWithSessionManagementDialogs.py diff --git a/eqt/ui/SessionDialogs.py b/eqt/ui/SessionDialogs.py index 71c44e9..dfb77cf 100644 --- a/eqt/ui/SessionDialogs.py +++ b/eqt/ui/SessionDialogs.py @@ -70,7 +70,7 @@ def __init__(self, parent=None, app_name=None): self.app_name = app_name label_text = ("Select a session directory to save and retrieve all" - f" {app_name or ''} Sessions:") + f"{app_name or ''} Sessions:") self.addSpanningWidget(QLabel(label_text), 'select_session_directory') diff --git a/test/test_MainWindowWithSessionManagement.py b/test/test_MainWindowWithSessionManagement.py index c5f0365..777014c 100644 --- a/test/test_MainWindowWithSessionManagement.py +++ b/test/test_MainWindowWithSessionManagement.py @@ -228,57 +228,13 @@ def tearDown(self): shutil.rmtree("Test Folder") -@skip_ci -class TestMainWindowWithSessionManagementCreateLoadSessionDialog(unittest.TestCase): - ''' - Tests the createLoadSessionDialog method of the MainWindowWithSessionManagement class - - This method is responsible for creating the load session dialog - and populating it with the available sessions - ''' - def setUp(self): - self.title = "title" - self.app_name = "app_name" - self.smw = MainWindowWithSessionManagement(self.title, self.app_name) - self.smw.sessions_directory = mock.MagicMock() - self.zip_folders = ["zip_folder_1", "zip_folder_2"] - - def test_createLoadSessionDialog_populates_session_dropdown(self): - dialog = self.smw.createLoadSessionDialog(self.zip_folders) - assert dialog is not None - assert isinstance(dialog, eqt.ui.SessionDialogs.LoadSessionDialog) - select_session_combo = dialog.getWidget('select_session') - assert select_session_combo is not None - items_in_combo = [ - select_session_combo.itemText(i) for i in range(select_session_combo.count())] - assert items_in_combo == self.zip_folders - - def test_createLoadSessionDialog_connections(self): - dialog = self.smw.createLoadSessionDialog(self.zip_folders) - - self.smw.loadSessionLoad = mock.MagicMock() - self.smw.selectLoadSessionsDirectorySelectedInSessionSelector = mock.MagicMock() - self.smw.loadSessionNew = mock.MagicMock() - - dialog = self.smw.createLoadSessionDialog(self.zip_folders) - - dialog.Ok.click() - self.smw.loadSessionLoad.assert_called_once() - - dialog.Select.click() - self.smw.selectLoadSessionsDirectorySelectedInSessionSelector.assert_called_with(dialog) - - dialog.Cancel.click() - self.smw.loadSessionNew.assert_called_once() - - @skip_ci class TestSelectLoadSessionsDirectorySelectedInSessionSelector(unittest.TestCase): ''' Tests the `selectLoadSessionsDirectorySelectedInSessionSelector` method of the `MainWindowWithSessionManagement` class - This method sould close the passed dialog, and call + This method should close the passed dialog, and call `createSessionsDirectorySelectionDialog(new_session=True)` ''' def setUp(self): diff --git a/test/test_MainWindowWithSessionManagementDialogs.py b/test/test_MainWindowWithSessionManagementDialogs.py new file mode 100644 index 0000000..81a611f --- /dev/null +++ b/test/test_MainWindowWithSessionManagementDialogs.py @@ -0,0 +1,68 @@ + +import json +import os +import shutil +import unittest +from datetime import datetime +from unittest import mock +from unittest.mock import patch + +from PySide2.QtCore import QSettings, QThreadPool +from PySide2.QtWidgets import QMenu, QMenuBar + +import eqt +from eqt.io import zip_directory +from eqt.ui.MainWindowWithSessionManagement import MainWindowWithSessionManagement + +from eqt.ui.SessionDialogs import (LoadSessionDialog) + +from . import skip_ci + +''' Unit tests for the MainWindowWithSessionManagement class +methods which create dialogs''' + +@skip_ci +class TestMainWindowWithSessionManagementCreateLoadSessionDialog(unittest.TestCase): + ''' + Tests the createLoadSessionDialog method of the MainWindowWithSessionManagement class + + This method is responsible for creating the load session dialog + and populating it with the available sessions + ''' + def setUp(self): + self.title = "title" + self.app_name = "app_name" + self.smw = MainWindowWithSessionManagement(self.title, self.app_name) + self.smw.sessions_directory = mock.MagicMock() + self.zip_folders = ["zip_folder_1", "zip_folder_2"] + + def test_createLoadSessionDialog_populates_session_dropdown(self): + dialog = self.smw.createLoadSessionDialog(self.zip_folders) + assert dialog is not None + print(LoadSessionDialog) + print(type(LoadSessionDialog)) + print(type(dialog)) + assert isinstance(dialog, LoadSessionDialog) + select_session_combo = dialog.getWidget('select_session') + assert select_session_combo is not None + items_in_combo = [ + select_session_combo.itemText(i) for i in range(select_session_combo.count())] + assert items_in_combo == self.zip_folders + + def test_createLoadSessionDialog_connections(self): + dialog = self.smw.createLoadSessionDialog(self.zip_folders) + + self.smw.loadSessionLoad = mock.MagicMock() + self.smw.selectLoadSessionsDirectorySelectedInSessionSelector = mock.MagicMock() + self.smw.loadSessionNew = mock.MagicMock() + + dialog = self.smw.createLoadSessionDialog(self.zip_folders) + + dialog.Ok.click() + self.smw.loadSessionLoad.assert_called_once() + + dialog.Select.click() + self.smw.selectLoadSessionsDirectorySelectedInSessionSelector.assert_called_with(dialog) + + dialog.Cancel.click() + self.smw.loadSessionNew.assert_called_once() diff --git a/test/test_SessionDialogs.py b/test/test_SessionDialogs.py index 5a3c352..4761c13 100644 --- a/test/test_SessionDialogs.py +++ b/test/test_SessionDialogs.py @@ -1,6 +1,7 @@ import os import unittest from pathlib import Path +from unittest import mock from unittest.mock import patch from PySide2.QtWidgets import QFileDialog @@ -14,6 +15,8 @@ WarningDialog, ) +from eqt.ui.MainWindowWithSessionManagement import MainWindowWithSessionManagement + from . import skip_ci @@ -139,3 +142,4 @@ class TestAppSettingsDialog(unittest.TestCase): def test_init(self): asd = AppSettingsDialog() assert asd is not None + From 94f172e0cb34570b40781f38fe534d7efbc66710 Mon Sep 17 00:00:00 2001 From: lauramurgatroyd Date: Tue, 21 Nov 2023 09:14:35 +0000 Subject: [PATCH 2/6] Fix issues with session label --- eqt/ui/SessionDialogs.py | 7 ++++++- test/dialog_example_2_test.py | 2 +- test/test_MainWindowWithSessionManagementDialogs.py | 11 +---------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/eqt/ui/SessionDialogs.py b/eqt/ui/SessionDialogs.py index dfb77cf..cf5a35d 100644 --- a/eqt/ui/SessionDialogs.py +++ b/eqt/ui/SessionDialogs.py @@ -69,8 +69,13 @@ def __init__(self, parent=None, app_name=None): self.app_name = app_name + if app_name is not None: + app_name_label = ' ' + app_name + else: + app_name_label = '' + label_text = ("Select a session directory to save and retrieve all" - f"{app_name or ''} Sessions:") + f"{app_name_label} Sessions:") self.addSpanningWidget(QLabel(label_text), 'select_session_directory') diff --git a/test/dialog_example_2_test.py b/test/dialog_example_2_test.py index 1bacc34..d15e7f1 100644 --- a/test/dialog_example_2_test.py +++ b/test/dialog_example_2_test.py @@ -56,7 +56,7 @@ def openFormDialog(self): # store a reference self.dialog = dialog - dialog.exec() + dialog.open() def accepted(self): print("accepted") diff --git a/test/test_MainWindowWithSessionManagementDialogs.py b/test/test_MainWindowWithSessionManagementDialogs.py index 81a611f..f611b88 100644 --- a/test/test_MainWindowWithSessionManagementDialogs.py +++ b/test/test_MainWindowWithSessionManagementDialogs.py @@ -1,20 +1,11 @@ -import json -import os -import shutil import unittest -from datetime import datetime from unittest import mock -from unittest.mock import patch -from PySide2.QtCore import QSettings, QThreadPool -from PySide2.QtWidgets import QMenu, QMenuBar - -import eqt from eqt.io import zip_directory from eqt.ui.MainWindowWithSessionManagement import MainWindowWithSessionManagement -from eqt.ui.SessionDialogs import (LoadSessionDialog) +from eqt.ui.SessionDialogs import LoadSessionDialog from . import skip_ci From d6d2cc6eadf2acd8e58d926c86dbaf72be94f4f3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 21 Nov 2023 09:15:52 +0000 Subject: [PATCH 3/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- test/test_MainWindowWithSessionManagementDialogs.py | 3 +-- test/test_SessionDialogs.py | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/test/test_MainWindowWithSessionManagementDialogs.py b/test/test_MainWindowWithSessionManagementDialogs.py index f611b88..6a38afb 100644 --- a/test/test_MainWindowWithSessionManagementDialogs.py +++ b/test/test_MainWindowWithSessionManagementDialogs.py @@ -1,10 +1,8 @@ - import unittest from unittest import mock from eqt.io import zip_directory from eqt.ui.MainWindowWithSessionManagement import MainWindowWithSessionManagement - from eqt.ui.SessionDialogs import LoadSessionDialog from . import skip_ci @@ -12,6 +10,7 @@ ''' Unit tests for the MainWindowWithSessionManagement class methods which create dialogs''' + @skip_ci class TestMainWindowWithSessionManagementCreateLoadSessionDialog(unittest.TestCase): ''' diff --git a/test/test_SessionDialogs.py b/test/test_SessionDialogs.py index 4761c13..31b2d7b 100644 --- a/test/test_SessionDialogs.py +++ b/test/test_SessionDialogs.py @@ -6,6 +6,7 @@ from PySide2.QtWidgets import QFileDialog +from eqt.ui.MainWindowWithSessionManagement import MainWindowWithSessionManagement from eqt.ui.SessionDialogs import ( AppSettingsDialog, ErrorDialog, @@ -15,8 +16,6 @@ WarningDialog, ) -from eqt.ui.MainWindowWithSessionManagement import MainWindowWithSessionManagement - from . import skip_ci @@ -142,4 +141,3 @@ class TestAppSettingsDialog(unittest.TestCase): def test_init(self): asd = AppSettingsDialog() assert asd is not None - From 73f419c09a32b2e7432d60ac1345d8bbf6fb19c1 Mon Sep 17 00:00:00 2001 From: lauramurgatroyd Date: Tue, 21 Nov 2023 09:21:12 +0000 Subject: [PATCH 4/6] Fix formatting --- test/test_MainWindowWithSessionManagementDialogs.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/test_MainWindowWithSessionManagementDialogs.py b/test/test_MainWindowWithSessionManagementDialogs.py index 6a38afb..2f00f0c 100644 --- a/test/test_MainWindowWithSessionManagementDialogs.py +++ b/test/test_MainWindowWithSessionManagementDialogs.py @@ -1,14 +1,13 @@ import unittest from unittest import mock -from eqt.io import zip_directory from eqt.ui.MainWindowWithSessionManagement import MainWindowWithSessionManagement from eqt.ui.SessionDialogs import LoadSessionDialog from . import skip_ci -''' Unit tests for the MainWindowWithSessionManagement class -methods which create dialogs''' +# Unit tests for the MainWindowWithSessionManagement class +# methods which create dialogs @skip_ci From ccdf0fa39e07a6827c8c35492273108ed5fa1438 Mon Sep 17 00:00:00 2001 From: lauramurgatroyd Date: Tue, 21 Nov 2023 09:27:18 +0000 Subject: [PATCH 5/6] Remove unused imports --- test/test_SessionDialogs.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/test_SessionDialogs.py b/test/test_SessionDialogs.py index 31b2d7b..5a3c352 100644 --- a/test/test_SessionDialogs.py +++ b/test/test_SessionDialogs.py @@ -1,12 +1,10 @@ import os import unittest from pathlib import Path -from unittest import mock from unittest.mock import patch from PySide2.QtWidgets import QFileDialog -from eqt.ui.MainWindowWithSessionManagement import MainWindowWithSessionManagement from eqt.ui.SessionDialogs import ( AppSettingsDialog, ErrorDialog, From 05ff03703b744ba53b57e0080d250c26c5cc12bc Mon Sep 17 00:00:00 2001 From: lauramurgatroyd Date: Tue, 21 Nov 2023 09:29:23 +0000 Subject: [PATCH 6/6] remove prints --- test/test_MainWindowWithSessionManagementDialogs.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/test_MainWindowWithSessionManagementDialogs.py b/test/test_MainWindowWithSessionManagementDialogs.py index 2f00f0c..1c8bb79 100644 --- a/test/test_MainWindowWithSessionManagementDialogs.py +++ b/test/test_MainWindowWithSessionManagementDialogs.py @@ -28,9 +28,6 @@ def setUp(self): def test_createLoadSessionDialog_populates_session_dropdown(self): dialog = self.smw.createLoadSessionDialog(self.zip_folders) assert dialog is not None - print(LoadSessionDialog) - print(type(LoadSessionDialog)) - print(type(dialog)) assert isinstance(dialog, LoadSessionDialog) select_session_combo = dialog.getWidget('select_session') assert select_session_combo is not None