From 2dc6b7f1ce2595b9bf8bc3a6e2d745c06e48c2ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 13:38:32 -0500 Subject: [PATCH 01/12] Add QCheckBox to imports --- gwhat/projet/manager_data.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gwhat/projet/manager_data.py b/gwhat/projet/manager_data.py index 69b2c3e37..11ec06ab5 100644 --- a/gwhat/projet/manager_data.py +++ b/gwhat/projet/manager_data.py @@ -14,9 +14,9 @@ # ---- Third party imports from PyQt5.QtCore import Qt, QCoreApplication from PyQt5.QtCore import pyqtSignal as QSignal -from PyQt5.QtWidgets import (QWidget, QComboBox, QGridLayout, QLabel, - QMessageBox, QLineEdit, QPushButton, - QFileDialog, QApplication, QDialog, QGroupBox) +from PyQt5.QtWidgets import ( + QWidget, QCheckBox, QComboBox, QGridLayout, QLabel, QMessageBox, + QLineEdit, QPushButton, QFileDialog, QApplication, QDialog, QGroupBox) # ---- Local library imports from gwhat.meteo.weather_viewer import WeatherViewer, ExportWeatherButton From 657a8dba7e602dadf4b4a8172e89836f19f2fdcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 13:39:28 -0500 Subject: [PATCH 02/12] Add confirm_del_dataset method Show a message box asking the user confirmation before deleting a dataset. Return the user's answer and whether the 'do not show this message again' checkbox has been checked or not. --- gwhat/projet/manager_data.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/gwhat/projet/manager_data.py b/gwhat/projet/manager_data.py index 11ec06ab5..b5c1113d2 100644 --- a/gwhat/projet/manager_data.py +++ b/gwhat/projet/manager_data.py @@ -202,8 +202,28 @@ def emit_warning(self, msg): btn = QMessageBox.Ok QMessageBox.warning(self, 'Warning', msg, btn) - # ---- WL Dataset + def confirm_del_dataset(self, dsetname, dsettype): + """ + Show a message box asking the user confirmation before deleting + a dataset. Return the user's answer and whether the + 'do not show this message again' checkbox has been checked or not. + """ + msg_box = QMessageBox( + QMessageBox.Question, + "Delete {} dataset '{}'".format(dsettype, dsetname), + ("Do you want to delete the {} dataset {}?

" + "All data will be deleted from the project, but the " + "original data files will be preserved.

" + ).format(dsettype, dsetname), + buttons=QMessageBox.Yes | QMessageBox.Cancel, + parent=self) + checkbox = QCheckBox("Don't show this message again.") + msg_box.setCheckBox(checkbox) + + reply = msg_box.exec_() + return reply, not checkbox.isChecked() + # ---- WL Dataset @property def wldsets(self): """Return a list of all the wldset saved in the project.""" From 7a7a4d0ce346cee49abd9d6969f0e88a6308075c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 13:39:55 -0500 Subject: [PATCH 03/12] Add _confirm_before_deleting_dset class var --- gwhat/projet/manager_data.py | 1 + 1 file changed, 1 insertion(+) diff --git a/gwhat/projet/manager_data.py b/gwhat/projet/manager_data.py index b5c1113d2..3ad3d3fc1 100644 --- a/gwhat/projet/manager_data.py +++ b/gwhat/projet/manager_data.py @@ -41,6 +41,7 @@ def __init__(self, parent=None, projet=None, pm=None, pytesting=False): super(DataManager, self).__init__(parent) self._pytesting = pytesting self._projet = projet + self._confirm_before_deleting_dset = True self.setWindowFlags(Qt.Window) self.setWindowIcon(icons.get_icon('master')) From 073667d0cbdc94e1c700575f06c8a2199ceff6d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 13:40:15 -0500 Subject: [PATCH 04/12] Refactor del_current_wldset --- gwhat/projet/manager_data.py | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/gwhat/projet/manager_data.py b/gwhat/projet/manager_data.py index 3ad3d3fc1..0d285b114 100644 --- a/gwhat/projet/manager_data.py +++ b/gwhat/projet/manager_data.py @@ -296,25 +296,20 @@ def get_current_wldset(self): def del_current_wldset(self): """Delete the currently selected water level dataset.""" if self.wldsets_cbox.count() > 0: - name = self.wldsets_cbox.currentText() - msg = ('Do you want to delete the dataset %s?' - '

' - 'All data will be deleted from the project database, ' - 'but the original data files will be preserved') % name - reply = QMessageBox.question( - self, 'Delete current dataset', msg, - QMessageBox.Yes | QMessageBox.No) - - if reply == QMessageBox.No: - return - - self.projet.del_wldset(name) + dsetname = self.wldsets_cbox.currentText() + if self._confirm_before_deleting_dset: + reply, dont_show_again = self.confirm_del_dataset( + dsetname, 'water level') + if reply == QMessageBox.Cancel: + return + elif reply == QMessageBox.Yes: + self._confirm_before_deleting_dset = dont_show_again + self.projet.del_wldset(dsetname) self.update_wldsets() self.update_wldset_info() self.wldset_changed() # ---- WX Dataset - @property def wxdsets(self): """Return a list of all the weather datasets saved in the project.""" From 1b75c069b0d607322ad5bbec79550e9832604fa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 13:40:25 -0500 Subject: [PATCH 05/12] Refactor del_current_wxdset --- gwhat/projet/manager_data.py | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/gwhat/projet/manager_data.py b/gwhat/projet/manager_data.py index 0d285b114..64dde649a 100644 --- a/gwhat/projet/manager_data.py +++ b/gwhat/projet/manager_data.py @@ -374,20 +374,18 @@ def wxdset_changed(self): def del_current_wxdset(self): """Delete the currently selected weather dataset.""" if self.wxdsets_cbox.count() > 0: - name = self.wxdsets_cbox.currentText() - msg = ('Do you want to delete the weather dataset %s?' - '

' - 'All data will be deleted from the project database, ' - 'but the original data files will be preserved') % name - reply = QMessageBox.question( - self, 'Delete current dataset', msg, - QMessageBox.Yes | QMessageBox.No) - - if reply == QMessageBox.Yes: - self.projet.del_wxdset(name) - self.update_wxdsets() - self.update_wxdset_info() - self.wxdset_changed() + dsetname = self.wxdsets_cbox.currentText() + if self._confirm_before_deleting_dset: + reply, dont_show_again = self.confirm_del_dataset( + dsetname, 'weather') + if reply == QMessageBox.Cancel: + return + elif reply == QMessageBox.Yes: + self._confirm_before_deleting_dset = dont_show_again + self.projet.del_wxdset(dsetname) + self.update_wxdsets() + self.update_wxdset_info() + self.wxdset_changed() def get_current_wxdset(self): """Return the currently selected weather dataset dataframe.""" From eb7b48b86cc593d5b28178c2f16c6dc02ef25361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 13:41:03 -0500 Subject: [PATCH 06/12] Add sig_new_console_msg signal and connect it --- gwhat/mainwindow.py | 7 +++---- gwhat/projet/manager_data.py | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gwhat/mainwindow.py b/gwhat/mainwindow.py index 4157246e7..ca72b1895 100644 --- a/gwhat/mainwindow.py +++ b/gwhat/mainwindow.py @@ -96,16 +96,15 @@ def __init__(self, parent=None): self.projectfile = self.whatPref.projectfile self.projectdir = osp.dirname(self.projectfile) - # Setup the project and data managers : - + # Setup the project and data managers. splash.showMessage("Initializing project and data managers...") self.pmanager = ProjetManager(self) self.pmanager.currentProjetChanged.connect(self.new_project_loaded) self.dmanager = DataManager(parent=self, pm=self.pmanager) self.dmanager.setMaximumWidth(250) + self.dmanager.sig_new_console_msg.connect(self.write2console) - # Generate the GUI : - + # Generate the GUI. self.__initUI__() splash.finish(self) self.showMaximized() diff --git a/gwhat/projet/manager_data.py b/gwhat/projet/manager_data.py index 64dde649a..29cc51cf9 100644 --- a/gwhat/projet/manager_data.py +++ b/gwhat/projet/manager_data.py @@ -36,6 +36,7 @@ class DataManager(QWidget): wldsetChanged = QSignal(object) wxdsetChanged = QSignal(object) sig_workdir_changed = QSignal(str) + sig_new_console_msg = QSignal(str) def __init__(self, parent=None, projet=None, pm=None, pytesting=False): super(DataManager, self).__init__(parent) From 82088089fd42178d2fecd2de52ff89fc87fe9433 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 13:47:13 -0500 Subject: [PATCH 07/12] Flush to file after deleting a dataset --- gwhat/projet/reader_projet.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gwhat/projet/reader_projet.py b/gwhat/projet/reader_projet.py index d9e7b9f5a..c05056ccf 100644 --- a/gwhat/projet/reader_projet.py +++ b/gwhat/projet/reader_projet.py @@ -264,7 +264,9 @@ def add_wldset(self, name, df): return WLDataFrameHDF5(grp) def del_wldset(self, name): + """Delete the specified water level dataset.""" del self.db['wldsets/%s' % name] + self.db.flush() # ---- Weather Dataset Handlers @@ -339,7 +341,9 @@ def add_wxdset(self, name, df): self.db.flush() def del_wxdset(self, name): + """Delete the specified weather dataset.""" del self.db['wxdsets/%s' % name] + self.db.flush() class WLDataFrameHDF5(dict): From 0cfc23da31df92f60dfb80cb571c748892f373e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 14:27:07 -0500 Subject: [PATCH 08/12] Change tests to cover this new feature --- gwhat/projet/tests/test_manager_data.py | 69 ++++++++++++++++++------- 1 file changed, 50 insertions(+), 19 deletions(-) diff --git a/gwhat/projet/tests/test_manager_data.py b/gwhat/projet/tests/test_manager_data.py index eb84e7ab5..7c26da116 100644 --- a/gwhat/projet/tests/test_manager_data.py +++ b/gwhat/projet/tests/test_manager_data.py @@ -18,8 +18,10 @@ # ---- Local Libraries Imports from gwhat.meteo.weather_reader import WXDataFrame +from gwhat.projet.reader_waterlvl import read_water_level_datafile from gwhat.projet.reader_projet import ProjetReader -from gwhat.projet.manager_data import DataManager, QFileDialog, QMessageBox +from gwhat.projet.manager_data import (DataManager, QFileDialog, QMessageBox, + QCheckBox) DATADIR = osp.join(osp.dirname(osp.realpath(__file__)), 'data') WXFILENAME = osp.join(DATADIR, 'sample_weather_datafile.out') @@ -27,11 +29,10 @@ # ---- Pytest Fixtures -@pytest.fixture(scope="module") -def project(tmp_path_factory): +@pytest.fixture +def project(tmpdir): # Create a project and add add the wldset to it. - basetemp = tmp_path_factory.getbasetemp() - return ProjetReader(osp.join(basetemp, "data_manager_test.gwt")) + return ProjetReader(osp.join(str(tmpdir), "data_manager_test.gwt")) @pytest.fixture @@ -77,18 +78,32 @@ def test_delete_weather_data(datamanager, mocker, qtbot): """Test deleting weather datasets from the project.""" datamanager.show() - # Click on the button to delete the weather dataset from the project, but - # answer no. - assert datamanager.wxdataset_count() == 1 - mocker.patch.object(QMessageBox, 'question', return_value=QMessageBox.No) + datamanager.new_wxdset_imported('wxdset1', WXDataFrame(WXFILENAME)) + datamanager.new_wxdset_imported('wxdset2', WXDataFrame(WXFILENAME)) + assert datamanager.wxdataset_count() == 2 + + # Click to delete the current weather dataset, but cancel. + mock_exec_ = mocker.patch.object( + QMessageBox, 'exec_', return_value=QMessageBox.Cancel) + qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) + assert datamanager.wxdataset_count() == 2 + assert datamanager._confirm_before_deleting_dset is True + assert mock_exec_.call_count == 1 + + # Click to delete the current weather dataset, check the + # 'Don't show this message again' option and answer Yes. + mock_exec_.return_value = QMessageBox.Yes + mocker.patch.object(QCheckBox, 'isChecked', return_value=True) qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) assert datamanager.wxdataset_count() == 1 + assert datamanager._confirm_before_deleting_dset is False + assert mock_exec_.call_count == 2 - # Click on the button to delete the weather dataset from the project and - # answer yes. - mocker.patch.object(QMessageBox, 'question', return_value=QMessageBox.Yes) + # Click to delete the current weather dataset. qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) assert datamanager.wxdataset_count() == 0 + assert datamanager._confirm_before_deleting_dset is False + assert mock_exec_.call_count == 2 def test_import_waterlevel_data(datamanager, mocker, qtbot): @@ -124,18 +139,34 @@ def test_delete_waterlevel_data(datamanager, mocker, qtbot): """Test deleting water level datasets from the project.""" datamanager.show() - # Click on the button to delete the water level dataset from the project, - # but answer no. - assert datamanager.wldataset_count() == 1 - mocker.patch.object(QMessageBox, 'question', return_value=QMessageBox.No) + datamanager.new_wldset_imported( + 'wldset1', read_water_level_datafile(WLFILENAME)) + datamanager.new_wldset_imported( + 'wldset2', read_water_level_datafile(WLFILENAME)) + assert datamanager.wldataset_count() == 2 + + # Click to delete the current water level dataset, but cancel. + mock_exec_ = mocker.patch.object( + QMessageBox, 'exec_', return_value=QMessageBox.Cancel) + qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) + assert datamanager.wldataset_count() == 2 + assert datamanager._confirm_before_deleting_dset is True + assert mock_exec_.call_count == 1 + + # Click to delete the current water level dataset, check the + # 'Don't show this message again' option and answer Yes. + mock_exec_.return_value = QMessageBox.Yes + mocker.patch.object(QCheckBox, 'isChecked', return_value=True) qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) assert datamanager.wldataset_count() == 1 + assert datamanager._confirm_before_deleting_dset is False + assert mock_exec_.call_count == 2 - # Click on the button to delete the water level dataset from the project - # and answer yes. - mocker.patch.object(QMessageBox, 'question', return_value=QMessageBox.Yes) + # Click to delete the current weather dataset. qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) assert datamanager.wldataset_count() == 0 + assert datamanager._confirm_before_deleting_dset is False + assert mock_exec_.call_count == 2 # ---- Tests ExportWeatherButton From 2433f312ae561256d68e205ed450512ea791fb11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 14:33:44 -0500 Subject: [PATCH 09/12] Test that sig_new_console_msg is emitted --- gwhat/projet/tests/test_manager_data.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gwhat/projet/tests/test_manager_data.py b/gwhat/projet/tests/test_manager_data.py index 7c26da116..056a455b4 100644 --- a/gwhat/projet/tests/test_manager_data.py +++ b/gwhat/projet/tests/test_manager_data.py @@ -94,13 +94,15 @@ def test_delete_weather_data(datamanager, mocker, qtbot): # 'Don't show this message again' option and answer Yes. mock_exec_.return_value = QMessageBox.Yes mocker.patch.object(QCheckBox, 'isChecked', return_value=True) - qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) + with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True): + qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) assert datamanager.wxdataset_count() == 1 assert datamanager._confirm_before_deleting_dset is False assert mock_exec_.call_count == 2 # Click to delete the current weather dataset. - qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) + with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True): + qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) assert datamanager.wxdataset_count() == 0 assert datamanager._confirm_before_deleting_dset is False assert mock_exec_.call_count == 2 @@ -157,13 +159,15 @@ def test_delete_waterlevel_data(datamanager, mocker, qtbot): # 'Don't show this message again' option and answer Yes. mock_exec_.return_value = QMessageBox.Yes mocker.patch.object(QCheckBox, 'isChecked', return_value=True) - qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) + with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True): + qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) assert datamanager.wldataset_count() == 1 assert datamanager._confirm_before_deleting_dset is False assert mock_exec_.call_count == 2 # Click to delete the current weather dataset. - qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) + with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True): + qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) assert datamanager.wldataset_count() == 0 assert datamanager._confirm_before_deleting_dset is False assert mock_exec_.call_count == 2 From e31491ae5631bb3be8b23595874226e5d24970d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 14:37:22 -0500 Subject: [PATCH 10/12] Reduce vertical space with checkbox --- gwhat/projet/manager_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gwhat/projet/manager_data.py b/gwhat/projet/manager_data.py index 29cc51cf9..b06037c78 100644 --- a/gwhat/projet/manager_data.py +++ b/gwhat/projet/manager_data.py @@ -215,7 +215,7 @@ def confirm_del_dataset(self, dsetname, dsettype): "Delete {} dataset '{}'".format(dsettype, dsetname), ("Do you want to delete the {} dataset {}?

" "All data will be deleted from the project, but the " - "original data files will be preserved.

" + "original data files will be preserved.
" ).format(dsettype, dsetname), buttons=QMessageBox.Yes | QMessageBox.Cancel, parent=self) From ba45ebfb1cdf4ad86e09526a348fc68052e2f1d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 15:02:59 -0500 Subject: [PATCH 11/12] Increase waitSignal timeout --- gwhat/projet/tests/test_manager_data.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gwhat/projet/tests/test_manager_data.py b/gwhat/projet/tests/test_manager_data.py index 056a455b4..f63b6eabb 100644 --- a/gwhat/projet/tests/test_manager_data.py +++ b/gwhat/projet/tests/test_manager_data.py @@ -94,14 +94,16 @@ def test_delete_weather_data(datamanager, mocker, qtbot): # 'Don't show this message again' option and answer Yes. mock_exec_.return_value = QMessageBox.Yes mocker.patch.object(QCheckBox, 'isChecked', return_value=True) - with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True): + with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True, + timeout=3000): qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) assert datamanager.wxdataset_count() == 1 assert datamanager._confirm_before_deleting_dset is False assert mock_exec_.call_count == 2 # Click to delete the current weather dataset. - with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True): + with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True, + timeout=3000): qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) assert datamanager.wxdataset_count() == 0 assert datamanager._confirm_before_deleting_dset is False @@ -159,14 +161,16 @@ def test_delete_waterlevel_data(datamanager, mocker, qtbot): # 'Don't show this message again' option and answer Yes. mock_exec_.return_value = QMessageBox.Yes mocker.patch.object(QCheckBox, 'isChecked', return_value=True) - with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True): + with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True, + timeout=3000): qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) assert datamanager.wldataset_count() == 1 assert datamanager._confirm_before_deleting_dset is False assert mock_exec_.call_count == 2 # Click to delete the current weather dataset. - with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True): + with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True, + timeout=3000): qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) assert datamanager.wldataset_count() == 0 assert datamanager._confirm_before_deleting_dset is False From 30267461bfa935b10d9edbf57814cf55ba959d51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20Gosselin?= Date: Wed, 6 Feb 2019 15:15:11 -0500 Subject: [PATCH 12/12] Dont waitSignal because it is not working --- gwhat/projet/tests/test_manager_data.py | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/gwhat/projet/tests/test_manager_data.py b/gwhat/projet/tests/test_manager_data.py index f63b6eabb..7c26da116 100644 --- a/gwhat/projet/tests/test_manager_data.py +++ b/gwhat/projet/tests/test_manager_data.py @@ -94,17 +94,13 @@ def test_delete_weather_data(datamanager, mocker, qtbot): # 'Don't show this message again' option and answer Yes. mock_exec_.return_value = QMessageBox.Yes mocker.patch.object(QCheckBox, 'isChecked', return_value=True) - with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True, - timeout=3000): - qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) + qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) assert datamanager.wxdataset_count() == 1 assert datamanager._confirm_before_deleting_dset is False assert mock_exec_.call_count == 2 # Click to delete the current weather dataset. - with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True, - timeout=3000): - qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) + qtbot.mouseClick(datamanager.btn_del_wxdset, Qt.LeftButton) assert datamanager.wxdataset_count() == 0 assert datamanager._confirm_before_deleting_dset is False assert mock_exec_.call_count == 2 @@ -161,17 +157,13 @@ def test_delete_waterlevel_data(datamanager, mocker, qtbot): # 'Don't show this message again' option and answer Yes. mock_exec_.return_value = QMessageBox.Yes mocker.patch.object(QCheckBox, 'isChecked', return_value=True) - with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True, - timeout=3000): - qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) + qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) assert datamanager.wldataset_count() == 1 assert datamanager._confirm_before_deleting_dset is False assert mock_exec_.call_count == 2 # Click to delete the current weather dataset. - with qtbot.waitSignal(datamanager.sig_new_console_msg, raising=True, - timeout=3000): - qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) + qtbot.mouseClick(datamanager.btn_del_wldset, Qt.LeftButton) assert datamanager.wldataset_count() == 0 assert datamanager._confirm_before_deleting_dset is False assert mock_exec_.call_count == 2