diff --git a/tests/test_dialogs/test_dlg_about.py b/tests/test_dialogs/test_dlg_about.py index aaf94942..ab60cfd7 100644 --- a/tests/test_dialogs/test_dlg_about.py +++ b/tests/test_dialogs/test_dlg_about.py @@ -24,10 +24,9 @@ import pytest from pathlib import Path -from tools import getGuiItem - from PyQt5.QtWidgets import QAction, QMessageBox +from novelwriter import SHARED from novelwriter.dialogs.about import GuiAbout @@ -37,8 +36,8 @@ def testDlgAbout_NWDialog(qtbot, monkeypatch, nwGUI): # NW About nwGUI.showAboutNWDialog(showNotes=True) - qtbot.waitUntil(lambda: getGuiItem("GuiAbout") is not None, timeout=1000) - msgAbout = getGuiItem("GuiAbout") + qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiAbout) is not None, timeout=1000) + msgAbout = SHARED.findTopLevelWidget(GuiAbout) assert isinstance(msgAbout, GuiAbout) assert msgAbout.pageAbout.document().characterCount() > 100 diff --git a/tests/test_dialogs/test_dlg_preferences.py b/tests/test_dialogs/test_dlg_preferences.py index 408865c7..95d2eb59 100644 --- a/tests/test_dialogs/test_dlg_preferences.py +++ b/tests/test_dialogs/test_dlg_preferences.py @@ -22,8 +22,6 @@ from __future__ import annotations import pytest -from tools import getGuiItem - from PyQt5.QtGui import QFontDatabase, QKeyEvent from PyQt5.QtCore import QEvent, Qt from PyQt5.QtWidgets import QAction, QDialogButtonBox, QFileDialog, QFontDialog @@ -44,8 +42,8 @@ def testDlgPreferences_Main(qtbot, monkeypatch, nwGUI, tstPaths): # Load GUI with standard values nwGUI.mainMenu.aPreferences.activate(QAction.ActionEvent.Trigger) - qtbot.waitUntil(lambda: getGuiItem("GuiPreferences") is not None, timeout=1000) - prefs = getGuiItem("GuiPreferences") + qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiPreferences) is not None, timeout=1000) + prefs = SHARED.findTopLevelWidget(GuiPreferences) assert isinstance(prefs, GuiPreferences) prefs.show() diff --git a/tests/test_dialogs/test_dlg_projectsettings.py b/tests/test_dialogs/test_dlg_projectsettings.py index 5b4d5499..74cfd24a 100644 --- a/tests/test_dialogs/test_dlg_projectsettings.py +++ b/tests/test_dialogs/test_dlg_projectsettings.py @@ -22,7 +22,7 @@ from __future__ import annotations import pytest -from tools import C, getGuiItem, buildTestProject +from tools import C, buildTestProject from PyQt5.QtGui import QColor from PyQt5.QtCore import Qt @@ -47,7 +47,7 @@ def testDlgProjSettings_Dialog(qtbot, monkeypatch, nwGUI): # Check that we cannot open when there is no project nwGUI.mainMenu.aProjectSettings.activate(QAction.Trigger) - assert getGuiItem("GuiProjectSettings") is None + assert SHARED.findTopLevelWidget(GuiProjectSettings) is None # Pretend we have a project SHARED.project._valid = True @@ -55,9 +55,11 @@ def testDlgProjSettings_Dialog(qtbot, monkeypatch, nwGUI): # Get the dialog object nwGUI.mainMenu.aProjectSettings.activate(QAction.Trigger) - qtbot.waitUntil(lambda: getGuiItem("GuiProjectSettings") is not None, timeout=1000) + qtbot.waitUntil( + lambda: SHARED.findTopLevelWidget(GuiProjectSettings) is not None, timeout=1000 + ) - projSettings = getGuiItem("GuiProjectSettings") + projSettings = SHARED.findTopLevelWidget(GuiProjectSettings) assert isinstance(projSettings, GuiProjectSettings) projSettings.show() qtbot.addWidget(projSettings) diff --git a/tests/test_dialogs/test_dlg_wordlist.py b/tests/test_dialogs/test_dlg_wordlist.py index 6af38902..e1b7d0ec 100644 --- a/tests/test_dialogs/test_dlg_wordlist.py +++ b/tests/test_dialogs/test_dlg_wordlist.py @@ -25,7 +25,7 @@ import pytest from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QDialog, QAction -from tools import buildTestProject, getGuiItem +from tools import buildTestProject from novelwriter import SHARED from novelwriter.core.spellcheck import UserDictionary @@ -47,9 +47,9 @@ def testDlgWordList_Dialog(qtbot, monkeypatch, nwGUI, projPath): # Load the dialog nwGUI.mainMenu.aEditWordList.activate(QAction.Trigger) - qtbot.waitUntil(lambda: getGuiItem("GuiWordList") is not None, timeout=1000) + qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiWordList) is not None, timeout=1000) - wList = getGuiItem("GuiWordList") + wList = SHARED.findTopLevelWidget(GuiWordList) assert isinstance(wList, GuiWordList) wList.show() diff --git a/tests/test_gui/test_gui_guimain.py b/tests/test_gui/test_gui_guimain.py index 5c15ed4a..6bfb7f0d 100644 --- a/tests/test_gui/test_gui_guimain.py +++ b/tests/test_gui/test_gui_guimain.py @@ -26,7 +26,7 @@ import pytest from shutil import copyfile from tools import ( - C, NWD_IGNORE, cmpFiles, buildTestProject, XML_IGNORE, getGuiItem + C, NWD_IGNORE, cmpFiles, buildTestProject, XML_IGNORE ) from PyQt5.QtGui import QPalette @@ -93,16 +93,16 @@ def testGuiMain_Launch(qtbot, monkeypatch, nwGUI, projPath): nwGUI.closeProject() # Check that release notes opened - qtbot.waitUntil(lambda: getGuiItem("GuiAbout") is not None, timeout=1000) - msgAbout = getGuiItem("GuiAbout") + qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiAbout) is not None, timeout=1000) + msgAbout = SHARED.findTopLevelWidget(GuiAbout) assert isinstance(msgAbout, GuiAbout) assert msgAbout.tabBox.currentWidget() == msgAbout.pageNotes msgAbout.accept() # Check that project open dialog launches nwGUI.postLaunchTasks(None) - qtbot.waitUntil(lambda: getGuiItem("GuiWelcome") is not None, timeout=1000) - assert isinstance(welcome := getGuiItem("GuiWelcome"), GuiWelcome) + qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiWelcome) is not None, timeout=1000) + assert isinstance(welcome := SHARED.findTopLevelWidget(GuiWelcome), GuiWelcome) welcome.show() welcome.close() diff --git a/tests/test_tools/test_tools_dictionaries.py b/tests/test_tools/test_tools_dictionaries.py index 1e2b0f4e..9f11d51c 100644 --- a/tests/test_tools/test_tools_dictionaries.py +++ b/tests/test_tools/test_tools_dictionaries.py @@ -25,7 +25,6 @@ import enchant from zipfile import ZipFile -from tools import getGuiItem from mocked import causeException from PyQt5.QtGui import QDesktopServices @@ -48,9 +47,9 @@ def testToolDictionaries_Main(qtbot, monkeypatch, nwGUI, fncPath): # Open the tool nwGUI.showDictionariesDialog() - qtbot.waitUntil(lambda: getGuiItem("GuiDictionaries") is not None, timeout=1000) + qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiDictionaries) is not None, timeout=1000) - nwDicts = getGuiItem("GuiDictionaries") + nwDicts = SHARED.findTopLevelWidget(GuiDictionaries) assert isinstance(nwDicts, GuiDictionaries) assert nwDicts.isVisible() assert nwDicts.inPath.text() == str(fncPath) diff --git a/tests/test_tools/test_tools_lipsum.py b/tests/test_tools/test_tools_lipsum.py index 2930ed9f..cc4f8b18 100644 --- a/tests/test_tools/test_tools_lipsum.py +++ b/tests/test_tools/test_tools_lipsum.py @@ -22,10 +22,11 @@ from __future__ import annotations import pytest -from tools import C, getGuiItem, buildTestProject +from tools import C, buildTestProject from PyQt5.QtWidgets import QAction +from novelwriter import SHARED from novelwriter.tools.lipsum import GuiLipsum @@ -34,7 +35,7 @@ def testToolLipsum_Main(qtbot, monkeypatch, nwGUI, projPath, mockRnd): """Test the Lorem Ipsum tool.""" # Check that we cannot open when there is no project nwGUI.mainMenu.aLipsumText.activate(QAction.Trigger) - assert getGuiItem("GuiLipsum") is None + assert SHARED.findTopLevelWidget(GuiLipsum) is None buildTestProject(nwGUI, projPath) nwLipsum = GuiLipsum(nwGUI) diff --git a/tests/test_tools/test_tools_manuscript.py b/tests/test_tools/test_tools_manuscript.py index 0978ee05..e1615737 100644 --- a/tests/test_tools/test_tools_manuscript.py +++ b/tests/test_tools/test_tools_manuscript.py @@ -26,7 +26,7 @@ import pytest from pathlib import Path from pytestqt.qtbot import QtBot -from tools import C, buildTestProject, getGuiItem +from tools import C, buildTestProject from mocked import causeOSError from PyQt5.QtCore import Qt, pyqtSlot @@ -50,8 +50,8 @@ def testManuscript_Init(monkeypatch, qtbot: QtBot, nwGUI: GuiMain, projPath: Pat allText = "New Novel\nBy Jane Doe\nA Chapter\n\t\tHi\n* * *" nwGUI.mainMenu.aBuildManuscript.activate(QAction.Trigger) - qtbot.waitUntil(lambda: getGuiItem("GuiManuscript") is not None, timeout=1000) - manus = getGuiItem("GuiManuscript") + qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiManuscript) is not None, timeout=1000) + manus = SHARED.findTopLevelWidget(GuiManuscript) assert isinstance(manus, GuiManuscript) manus.show() assert manus.docPreview.toPlainText().strip() == "" @@ -104,7 +104,7 @@ def testManuscript_Builds(qtbot: QtBot, nwGUI: GuiMain, projPath: Path): # Create a new build manus.tbAdd.click() - bSettings = getGuiItem("GuiBuildSettings") + bSettings = SHARED.findTopLevelWidget(GuiBuildSettings) assert isinstance(bSettings, GuiBuildSettings) bSettings.editBuildName.setText("Test Build") build = None @@ -127,7 +127,7 @@ def testManuscript_Builds(qtbot: QtBot, nwGUI: GuiMain, projPath: Path): manus.buildList.setCurrentRow(0) manus.tbEdit.click() - bSettings = getGuiItem("GuiBuildSettings") + bSettings = SHARED.findTopLevelWidget(GuiBuildSettings) assert isinstance(bSettings, GuiBuildSettings) build = None diff --git a/tests/test_tools/test_tools_noveldetails.py b/tests/test_tools/test_tools_noveldetails.py index c8925e53..b8b49a2c 100644 --- a/tests/test_tools/test_tools_noveldetails.py +++ b/tests/test_tools/test_tools_noveldetails.py @@ -22,8 +22,6 @@ from __future__ import annotations import pytest -from tools import getGuiItem - from PyQt5.QtWidgets import QAction from novelwriter import SHARED @@ -49,8 +47,8 @@ def testToolNovelDetails_Main(qtbot, nwGUI, prjLipsum, ipsumText): # Create the dialog nwGUI.mainMenu.aNovelDetails.activate(QAction.ActionEvent.Trigger) - qtbot.waitUntil(lambda: getGuiItem("GuiNovelDetails") is not None, timeout=1000) - details = getGuiItem("GuiNovelDetails") + qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiNovelDetails) is not None, timeout=1000) + details = SHARED.findTopLevelWidget(GuiNovelDetails) assert isinstance(details, GuiNovelDetails) # Overview Page diff --git a/tests/test_tools/test_tools_writingstats.py b/tests/test_tools/test_tools_writingstats.py index 1f8afabc..0524174a 100644 --- a/tests/test_tools/test_tools_writingstats.py +++ b/tests/test_tools/test_tools_writingstats.py @@ -25,7 +25,7 @@ import pytest from pathlib import Path -from tools import getGuiItem, buildTestProject +from tools import buildTestProject from mocked import causeOSError from PyQt5.QtCore import Qt @@ -38,8 +38,7 @@ from novelwriter.tools.writingstats import GuiWritingStats @pytest.mark.gui def testToolWritingStats_Main(qtbot, monkeypatch, nwGUI, projPath, tstPaths): - """Test the full writing stats tool. - """ + """Test the full writing stats tool.""" # Create a project to work on buildTestProject(nwGUI, projPath) project = SHARED.project @@ -50,9 +49,9 @@ def testToolWritingStats_Main(qtbot, monkeypatch, nwGUI, projPath, tstPaths): # Open the Writing Stats dialog nwGUI.mainMenu.aWritingStats.activate(QAction.Trigger) - qtbot.waitUntil(lambda: getGuiItem("GuiWritingStats") is not None, timeout=1000) + qtbot.waitUntil(lambda: SHARED.findTopLevelWidget(GuiWritingStats) is not None, timeout=1000) - sessLog = getGuiItem("GuiWritingStats") + sessLog = SHARED.findTopLevelWidget(GuiWritingStats) assert isinstance(sessLog, GuiWritingStats) # Test Loading diff --git a/tests/tools.py b/tests/tools.py index 7a00b4b6..6346432b 100644 --- a/tests/tools.py +++ b/tests/tools.py @@ -25,7 +25,7 @@ import shutil from pathlib import Path from datetime import datetime -from PyQt5.QtWidgets import QDialog, QVBoxLayout, QWidget, qApp +from PyQt5.QtWidgets import QDialog, QVBoxLayout, QWidget XML_IGNORE = ("