Separated out about test and updated it
This commit is contained in:
+20
-18
@@ -59,21 +59,23 @@ Available markers are:
|
|||||||
To filter specific groups of tests, use the `-k` switch.
|
To filter specific groups of tests, use the `-k` switch.
|
||||||
The commands for the respective test categories are listed below.
|
The commands for the respective test categories are listed below.
|
||||||
|
|
||||||
| Type | Test Target | Source File(s) | Marker | Filter |
|
| Type | Test Target | Source File(s) | Marker | Filter |
|
||||||
| :---------- | :----------------- | :--------------------- | :-------- | :----------------------- |
|
| :---------- | :---------------------- | :--------------------- | :-------- | :----------------------- |
|
||||||
| Unit | Main function | nw/\_\_init\_\_.py | `-m base` | `-k testBaseInit` |
|
| Unit | Main function | nw/\_\_init\_\_.py | `-m base` | `-k testBaseInit` |
|
||||||
| Unit | Common functions | nw/common.py | `-m base` | `-k testBaseCommon` |
|
| Unit | Common functions | nw/common.py | `-m base` | `-k testBaseCommon` |
|
||||||
| Unit | Config class | nw/config.py | `-m base` | `-k testBaseConfig` |
|
| Unit | Config class | nw/config.py | `-m base` | `-k testBaseConfig` |
|
||||||
| Unit | Error handlers | nw/error.py | `-m base` | `-k testBaseError` |
|
| Unit | Error handlers | nw/error.py | `-m base` | `-k testBaseError` |
|
||||||
| Unit | Core functions | nw/core/tools.py | `-m core` | `-k testCoreTools` |
|
| Unit | Core functions | nw/core/tools.py | `-m core` | `-k testCoreTools` |
|
||||||
| Unit | NWDoc class | nw/core/document.py | `-m core` | `-k testCoreDocument` |
|
| Unit | NWDoc class | nw/core/document.py | `-m core` | `-k testCoreDocument` |
|
||||||
| Unit | NWIndex class | nw/core/index.py | `-m core` | `-k testCoreIndex` |
|
| Unit | NWIndex class | nw/core/index.py | `-m core` | `-k testCoreIndex` |
|
||||||
| Unit | NWItem class | nw/core/item.py | `-m core` | `-k testCoreItem` |
|
| Unit | NWItem class | nw/core/item.py | `-m core` | `-k testCoreItem` |
|
||||||
| Unit | NWProject class | nw/core/project.py | `-m core` | `-k testCoreProject` |
|
| Unit | NWProject class | nw/core/project.py | `-m core` | `-k testCoreProject` |
|
||||||
| Unit | NWSpell* classes | nw/core/spellcheck.py | `-m core` | `-k testCoreSpell` |
|
| Unit | NWSpell* classes | nw/core/spellcheck.py | `-m core` | `-k testCoreSpell` |
|
||||||
| Unit | NWStatus class | nw/core/status.py | `-m core` | `-k testCoreStatus` |
|
| Unit | NWStatus class | nw/core/status.py | `-m core` | `-k testCoreStatus` |
|
||||||
| Unit | NWTree class | nw/core/tree.py | `-m core` | `-k testCoreTree` |
|
| Unit | NWTree class | nw/core/tree.py | `-m core` | `-k testCoreTree` |
|
||||||
| Unit | OptionsState class | nw/core/options.py | `-m core` | `-k testCoreOptions` |
|
| Unit | OptionsState class | nw/core/options.py | `-m core` | `-k testCoreOptions` |
|
||||||
| Unit | ToHtml class | nw/core/tohtml.py | `-m core` | `-k testCoreToHtml` |
|
| Unit | ToHtml class | nw/core/tohtml.py | `-m core` | `-k testCoreToHtml` |
|
||||||
| Unit | Tokenizer class | nw/core/tokenizer.py | `-m core` | `-k testCoreToken` |
|
| Unit | Tokenizer class | nw/core/tokenizer.py | `-m core` | `-k testCoreToken` |
|
||||||
| Integration | Writing Stats GUI | nw/gui/writingstats.py | `-m gui` | `-k testGuiWritingStats` |
|
| Integration | About Dialogs | nw/gui/about.py | `-m gui` | `-k testGuiAbout` |
|
||||||
|
| Integration | Project Settings Dialog | nw/gui/projsettings.py | `-m gui` | `-k testGuiProjSettings` |
|
||||||
|
| Integration | Writing Stats Dialog | nw/gui/writingstats.py | `-m gui` | `-k testGuiWritingStats` |
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""novelWriter About Dialog Class Tester
|
||||||
|
"""
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from tools import getGuiItem
|
||||||
|
|
||||||
|
from PyQt5.QtWidgets import QAction, QMessageBox
|
||||||
|
|
||||||
|
from nw.gui import GuiAbout
|
||||||
|
|
||||||
|
keyDelay = 2
|
||||||
|
typeDelay = 1
|
||||||
|
stepDelay = 20
|
||||||
|
|
||||||
|
@pytest.mark.gui
|
||||||
|
def testGuiAbout_Dialog(qtbot, monkeypatch, nwGUI):
|
||||||
|
"""Test the full about dialogs.
|
||||||
|
"""
|
||||||
|
# NW About
|
||||||
|
monkeypatch.setattr(GuiAbout, "exec_", lambda *args: None)
|
||||||
|
nwGUI.mainMenu.aAboutNW.activate(QAction.Trigger)
|
||||||
|
qtbot.waitUntil(lambda: getGuiItem("GuiAbout") is not None, timeout=1000)
|
||||||
|
|
||||||
|
msgAbout = getGuiItem("GuiAbout")
|
||||||
|
assert isinstance(msgAbout, GuiAbout)
|
||||||
|
msgAbout.show()
|
||||||
|
|
||||||
|
assert msgAbout.pageAbout.document().characterCount() > 100
|
||||||
|
assert msgAbout.pageNotes.document().characterCount() > 100
|
||||||
|
assert msgAbout.pageLicense.document().characterCount() > 100
|
||||||
|
|
||||||
|
msgAbout.mainConf.assetPath = "whatever"
|
||||||
|
|
||||||
|
msgAbout._fillNotesPage()
|
||||||
|
assert msgAbout.pageNotes.toPlainText() == "Error loading release notes text ..."
|
||||||
|
|
||||||
|
msgAbout._fillLicensePage()
|
||||||
|
assert msgAbout.pageLicense.toPlainText() == "Error loading license text ..."
|
||||||
|
|
||||||
|
msgAbout.showReleaseNotes()
|
||||||
|
assert msgAbout.tabBox.currentWidget() == msgAbout.pageNotes
|
||||||
|
|
||||||
|
# Qt About
|
||||||
|
monkeypatch.setattr(QMessageBox, "aboutQt", lambda *args, **kwargs: None)
|
||||||
|
nwGUI.mainMenu.aAboutQt.activate(QAction.Trigger)
|
||||||
|
|
||||||
|
# qtbot.stopForInteraction()
|
||||||
|
msgAbout._doClose()
|
||||||
|
|
||||||
|
# END Test testGuiAbout_Dialog
|
||||||
@@ -13,12 +13,12 @@ from tools import cmpFiles, getGuiItem
|
|||||||
from PyQt5.QtCore import Qt, QItemSelectionModel
|
from PyQt5.QtCore import Qt, QItemSelectionModel
|
||||||
from PyQt5.QtWidgets import (
|
from PyQt5.QtWidgets import (
|
||||||
QDialogButtonBox, QTreeWidgetItem, QListWidgetItem, QDialog, QAction,
|
QDialogButtonBox, QTreeWidgetItem, QListWidgetItem, QDialog, QAction,
|
||||||
QMessageBox, QFileDialog, QFontDialog
|
QFileDialog, QFontDialog
|
||||||
)
|
)
|
||||||
|
|
||||||
from nw.gui import (
|
from nw.gui import (
|
||||||
GuiItemEditor, GuiAbout, GuiBuildNovel, GuiDocMerge, GuiDocSplit,
|
GuiItemEditor, GuiBuildNovel, GuiDocMerge, GuiDocSplit, GuiProjectWizard,
|
||||||
GuiProjectWizard, GuiProjectLoad, GuiPreferences
|
GuiProjectLoad, GuiPreferences
|
||||||
)
|
)
|
||||||
from nw.gui.custom import QuotesDialog
|
from nw.gui.custom import QuotesDialog
|
||||||
from nw.constants import nwItemLayout, nwItemClass
|
from nw.constants import nwItemLayout, nwItemClass
|
||||||
@@ -100,46 +100,6 @@ def testItemEditor(qtbot, yesToAll, monkeypatch, fncDir, nwTempGUI, refDir, tmpD
|
|||||||
# qtbot.stopForInteraction()
|
# qtbot.stopForInteraction()
|
||||||
nwGUI.closeMain()
|
nwGUI.closeMain()
|
||||||
|
|
||||||
@pytest.mark.gui
|
|
||||||
def testAboutBox(qtbot, monkeypatch, fncDir, tmpDir):
|
|
||||||
nwGUI = nw.main(["--testmode", "--config=%s" % fncDir, "--data=%s" % tmpDir])
|
|
||||||
qtbot.addWidget(nwGUI)
|
|
||||||
nwGUI.show()
|
|
||||||
qtbot.waitForWindowShown(nwGUI)
|
|
||||||
qtbot.wait(stepDelay)
|
|
||||||
|
|
||||||
# NW About
|
|
||||||
monkeypatch.setattr(GuiAbout, "exec_", lambda *args: None)
|
|
||||||
nwGUI.mainMenu.aAboutNW.activate(QAction.Trigger)
|
|
||||||
qtbot.waitUntil(lambda: getGuiItem("GuiAbout") is not None, timeout=1000)
|
|
||||||
|
|
||||||
msgAbout = getGuiItem("GuiAbout")
|
|
||||||
assert isinstance(msgAbout, GuiAbout)
|
|
||||||
msgAbout.show()
|
|
||||||
|
|
||||||
assert msgAbout.pageAbout.document().characterCount() > 100
|
|
||||||
assert msgAbout.pageNotes.document().characterCount() > 100
|
|
||||||
assert msgAbout.pageLicense.document().characterCount() > 100
|
|
||||||
|
|
||||||
msgAbout.mainConf.assetPath = "whatever"
|
|
||||||
|
|
||||||
msgAbout._fillNotesPage()
|
|
||||||
assert msgAbout.pageNotes.toPlainText() == "Error loading release notes text ..."
|
|
||||||
|
|
||||||
msgAbout._fillLicensePage()
|
|
||||||
assert msgAbout.pageLicense.toPlainText() == "Error loading license text ..."
|
|
||||||
|
|
||||||
msgAbout.showReleaseNotes()
|
|
||||||
assert msgAbout.tabBox.currentWidget() == msgAbout.pageNotes
|
|
||||||
|
|
||||||
# Qt About
|
|
||||||
monkeypatch.setattr(QMessageBox, "aboutQt", lambda *args, **kwargs: None)
|
|
||||||
nwGUI.mainMenu.aAboutQt.activate(QAction.Trigger)
|
|
||||||
|
|
||||||
# qtbot.stopForInteraction()
|
|
||||||
msgAbout._doClose()
|
|
||||||
nwGUI.closeMain()
|
|
||||||
|
|
||||||
@pytest.mark.gui
|
@pytest.mark.gui
|
||||||
def testBuildTool(qtbot, yesToAll, nwTempBuild, nwLipsum, refDir, tmpDir):
|
def testBuildTool(qtbot, yesToAll, nwTempBuild, nwLipsum, refDir, tmpDir):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user