From e47f0c5166785308083bc2a11631935d72739224 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 10 Apr 2024 23:35:14 +0200 Subject: [PATCH] Update GUI test --- .../test_dialogs/test_dlg_projectsettings.py | 138 +++++++++--------- 1 file changed, 66 insertions(+), 72 deletions(-) diff --git a/tests/test_dialogs/test_dlg_projectsettings.py b/tests/test_dialogs/test_dlg_projectsettings.py index 9831ea1f..1ccdfab6 100644 --- a/tests/test_dialogs/test_dlg_projectsettings.py +++ b/tests/test_dialogs/test_dlg_projectsettings.py @@ -24,14 +24,13 @@ import pytest from tools import C, buildTestProject -from PyQt5.QtCore import Qt from PyQt5.QtGui import QColor from PyQt5.QtWidgets import QDialog, QAction, QColorDialog from novelwriter import CONFIG, SHARED from novelwriter.dialogs.editlabel import GuiEditLabel from novelwriter.dialogs.projectsettings import GuiProjectSettings -from novelwriter.enum import nwItemType +from novelwriter.enum import nwItemType, nwStatusShape from novelwriter.types import QtMouseLeft KEY_DELAY = 1 @@ -169,8 +168,8 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn nwGUI.rebuildTrees() project.countStatus() - assert [e["count"] for _, e in project.data.itemStatus.items()] == [2, 0, 2, 1] - assert [e["count"] for _, e in project.data.itemImport.items()] == [3, 0, 2, 1] + assert [e.count for _, e in project.data.itemStatus.iterItems()] == [2, 0, 2, 1] + assert [e.count for _, e in project.data.itemImport.iterItems()] == [3, 0, 2, 1] # Create Dialog projSettings = GuiProjectSettings(nwGUI, GuiProjectSettings.PAGE_STATUS) @@ -182,8 +181,8 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn status = projSettings.statusPage - assert status.wasChanged is False - assert status.getNewList() == ([], []) + assert status.changed is False + assert status.getNewList() == [] assert status.listBox.topLevelItemCount() == 4 # Can't delete the first item (it's in use) @@ -204,39 +203,38 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn status.addButton.click() status.listBox.setCurrentItem(status.listBox.topLevelItem(3)) status.editName.setText("Final") + status.shapeList.setCurrentData(nwStatusShape.CIRCLE, nwStatusShape.SQUARE) status.colButton.click() status.saveButton.click() assert status.listBox.topLevelItemCount() == 4 - assert status.wasChanged is True - assert status.getNewList() == ( - [ - { - "key": C.sNew, - "name": "New", - "cols": (100, 100, 100) - }, { - "key": C.sDraft, - "name": "Draft", - "cols": (200, 150, 0) - }, { - "key": C.sFinished, - "name": "Finished", - "cols": (50, 200, 0) - }, { - "key": None, - "name": "Final", - "cols": (20, 30, 40) - } - ], [ - C.sNote # Deleted item - ] - ) + assert status.changed is True + update = status.getNewList() + + assert update[0][0] == C.sNew + assert update[0][1].name == "New" + assert update[0][1].color == QColor(100, 100, 100) + assert update[0][1].shape == nwStatusShape.SQUARE + + assert update[1][0] == C.sDraft + assert update[1][1].name == "Draft" + assert update[1][1].color == QColor(200, 150, 0) + assert update[1][1].shape == nwStatusShape.SQUARE + + assert update[2][0] == C.sFinished + assert update[2][1].name == "Finished" + assert update[2][1].color == QColor(50, 200, 0) + assert update[2][1].shape == nwStatusShape.SQUARE + + assert update[3][0] is None + assert update[3][1].name == "Final" + assert update[3][1].color == QColor(20, 30, 40) + assert update[3][1].shape == nwStatusShape.CIRCLE # Move items, none selected -> no change status.listBox.clearSelection() status._moveItem(1) - assert [x["key"] for x in status.getNewList()[0]] == [ + assert [x[0] for x in status.getNewList()] == [ C.sNew, C.sDraft, C.sFinished, None ] @@ -244,7 +242,7 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn status.listBox.clearSelection() status.listBox.setCurrentItem(status.listBox.topLevelItem(0)) status._moveItem(-1) - assert [x["key"] for x in status.getNewList()[0]] == [ + assert [x[0] for x in status.getNewList()] == [ C.sNew, C.sDraft, C.sFinished, None ] @@ -252,13 +250,13 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn status.listBox.clearSelection() status.listBox.setCurrentItem(status.listBox.topLevelItem(3)) status._moveItem(-1) - assert [x["key"] for x in status.getNewList()[0]] == [ + assert [x[0] for x in status.getNewList()] == [ C.sNew, C.sDraft, None, C.sFinished ] # Move items, same selected, move down -> allowed status._moveItem(1) - assert [x["key"] for x in status.getNewList()[0]] == [ + assert [x[0] for x in status.getNewList()] == [ C.sNew, C.sDraft, C.sFinished, None ] @@ -280,53 +278,49 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn qtbot.mouseClick(importance.addButton, QtMouseLeft) importance.listBox.clearSelection() importance.listBox.setCurrentItem(importance.listBox.topLevelItem(3)) - for _ in range(8): - qtbot.keyClick(importance.editName, Qt.Key.Key_Backspace, delay=KEY_DELAY) - for c in "Final": - qtbot.keyClick(importance.editName, c, delay=KEY_DELAY) + importance.editName.setText("Final") + importance.shapeList.setCurrentData(nwStatusShape.TRIANGLE, nwStatusShape.SQUARE) qtbot.mouseClick(importance.colButton, QtMouseLeft) qtbot.mouseClick(importance.saveButton, QtMouseLeft) assert importance.listBox.topLevelItemCount() == 4 - assert importance.wasChanged is True - assert importance.getNewList() == ( - [ - { - "key": C.iNew, - "name": "New", - "cols": (100, 100, 100) - }, { - "key": C.iMajor, - "name": "Major", - "cols": (200, 150, 0) - }, { - "key": C.iMain, - "name": "Main", - "cols": (50, 200, 0) - }, { - "key": None, - "name": "Final", - "cols": (20, 30, 40) - } - ], [ - C.iMinor # Deleted item - ] - ) + assert importance.changed is True + update = importance.getNewList() + + assert update[0][0] == C.iNew + assert update[0][1].name == "New" + assert update[0][1].color == QColor(100, 100, 100) + assert update[0][1].shape == nwStatusShape.SQUARE + + assert update[1][0] == C.iMajor + assert update[1][1].name == "Major" + assert update[1][1].color == QColor(200, 150, 0) + assert update[1][1].shape == nwStatusShape.SQUARE + + assert update[2][0] == C.iMain + assert update[2][1].name == "Main" + assert update[2][1].color == QColor(50, 200, 0) + assert update[2][1].shape == nwStatusShape.SQUARE + + assert update[3][0] is None + assert update[3][1].name == "Final" + assert update[3][1].color == QColor(20, 30, 40) + assert update[3][1].shape == nwStatusShape.TRIANGLE # Check Project projSettings._doSave() - statusItems = dict(project.data.itemStatus.items()) - assert statusItems[C.sNew]["name"] == "New" - assert statusItems[C.sDraft]["name"] == "Draft" - assert statusItems[C.sFinished]["name"] == "Finished" - assert statusItems["s000013"]["name"] == "Final" + statusItems = dict(project.data.itemStatus.iterItems()) + assert statusItems[C.sNew].name == "New" + assert statusItems[C.sDraft].name == "Draft" + assert statusItems[C.sFinished].name == "Finished" + assert statusItems["s000013"].name == "Final" - importItems = dict(project.data.itemImport.items()) - assert importItems[C.iNew]["name"] == "New" - assert importItems[C.iMajor]["name"] == "Major" - assert importItems[C.iMain]["name"] == "Main" - assert importItems["i000014"]["name"] == "Final" + importItems = dict(project.data.itemImport.iterItems()) + assert importItems[C.iNew].name == "New" + assert importItems[C.iMajor].name == "Major" + assert importItems[C.iMain].name == "Main" + assert importItems["i000014"].name == "Final" # qtbot.stop()