Update GUI test

This commit is contained in:
Veronica Berglyd Olsen
2024-04-10 23:35:14 +02:00
parent 778b65b48c
commit e47f0c5166
+66 -72
View File
@@ -24,14 +24,13 @@ import pytest
from tools import C, buildTestProject from tools import C, buildTestProject
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QColor from PyQt5.QtGui import QColor
from PyQt5.QtWidgets import QDialog, QAction, QColorDialog from PyQt5.QtWidgets import QDialog, QAction, QColorDialog
from novelwriter import CONFIG, SHARED from novelwriter import CONFIG, SHARED
from novelwriter.dialogs.editlabel import GuiEditLabel from novelwriter.dialogs.editlabel import GuiEditLabel
from novelwriter.dialogs.projectsettings import GuiProjectSettings from novelwriter.dialogs.projectsettings import GuiProjectSettings
from novelwriter.enum import nwItemType from novelwriter.enum import nwItemType, nwStatusShape
from novelwriter.types import QtMouseLeft from novelwriter.types import QtMouseLeft
KEY_DELAY = 1 KEY_DELAY = 1
@@ -169,8 +168,8 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn
nwGUI.rebuildTrees() nwGUI.rebuildTrees()
project.countStatus() project.countStatus()
assert [e["count"] for _, e in project.data.itemStatus.items()] == [2, 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.items()] == [3, 0, 2, 1] assert [e.count for _, e in project.data.itemImport.iterItems()] == [3, 0, 2, 1]
# Create Dialog # Create Dialog
projSettings = GuiProjectSettings(nwGUI, GuiProjectSettings.PAGE_STATUS) projSettings = GuiProjectSettings(nwGUI, GuiProjectSettings.PAGE_STATUS)
@@ -182,8 +181,8 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn
status = projSettings.statusPage status = projSettings.statusPage
assert status.wasChanged is False assert status.changed is False
assert status.getNewList() == ([], []) assert status.getNewList() == []
assert status.listBox.topLevelItemCount() == 4 assert status.listBox.topLevelItemCount() == 4
# Can't delete the first item (it's in use) # 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.addButton.click()
status.listBox.setCurrentItem(status.listBox.topLevelItem(3)) status.listBox.setCurrentItem(status.listBox.topLevelItem(3))
status.editName.setText("Final") status.editName.setText("Final")
status.shapeList.setCurrentData(nwStatusShape.CIRCLE, nwStatusShape.SQUARE)
status.colButton.click() status.colButton.click()
status.saveButton.click() status.saveButton.click()
assert status.listBox.topLevelItemCount() == 4 assert status.listBox.topLevelItemCount() == 4
assert status.wasChanged is True assert status.changed is True
assert status.getNewList() == ( update = status.getNewList()
[
{ assert update[0][0] == C.sNew
"key": C.sNew, assert update[0][1].name == "New"
"name": "New", assert update[0][1].color == QColor(100, 100, 100)
"cols": (100, 100, 100) assert update[0][1].shape == nwStatusShape.SQUARE
}, {
"key": C.sDraft, assert update[1][0] == C.sDraft
"name": "Draft", assert update[1][1].name == "Draft"
"cols": (200, 150, 0) assert update[1][1].color == QColor(200, 150, 0)
}, { assert update[1][1].shape == nwStatusShape.SQUARE
"key": C.sFinished,
"name": "Finished", assert update[2][0] == C.sFinished
"cols": (50, 200, 0) assert update[2][1].name == "Finished"
}, { assert update[2][1].color == QColor(50, 200, 0)
"key": None, assert update[2][1].shape == nwStatusShape.SQUARE
"name": "Final",
"cols": (20, 30, 40) assert update[3][0] is None
} assert update[3][1].name == "Final"
], [ assert update[3][1].color == QColor(20, 30, 40)
C.sNote # Deleted item assert update[3][1].shape == nwStatusShape.CIRCLE
]
)
# Move items, none selected -> no change # Move items, none selected -> no change
status.listBox.clearSelection() status.listBox.clearSelection()
status._moveItem(1) 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 C.sNew, C.sDraft, C.sFinished, None
] ]
@@ -244,7 +242,7 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn
status.listBox.clearSelection() status.listBox.clearSelection()
status.listBox.setCurrentItem(status.listBox.topLevelItem(0)) status.listBox.setCurrentItem(status.listBox.topLevelItem(0))
status._moveItem(-1) 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 C.sNew, C.sDraft, C.sFinished, None
] ]
@@ -252,13 +250,13 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn
status.listBox.clearSelection() status.listBox.clearSelection()
status.listBox.setCurrentItem(status.listBox.topLevelItem(3)) status.listBox.setCurrentItem(status.listBox.topLevelItem(3))
status._moveItem(-1) 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 C.sNew, C.sDraft, None, C.sFinished
] ]
# Move items, same selected, move down -> allowed # Move items, same selected, move down -> allowed
status._moveItem(1) 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 C.sNew, C.sDraft, C.sFinished, None
] ]
@@ -280,53 +278,49 @@ def testDlgProjSettings_StatusImport(qtbot, monkeypatch, nwGUI, projPath, mockRn
qtbot.mouseClick(importance.addButton, QtMouseLeft) qtbot.mouseClick(importance.addButton, QtMouseLeft)
importance.listBox.clearSelection() importance.listBox.clearSelection()
importance.listBox.setCurrentItem(importance.listBox.topLevelItem(3)) importance.listBox.setCurrentItem(importance.listBox.topLevelItem(3))
for _ in range(8): importance.editName.setText("Final")
qtbot.keyClick(importance.editName, Qt.Key.Key_Backspace, delay=KEY_DELAY) importance.shapeList.setCurrentData(nwStatusShape.TRIANGLE, nwStatusShape.SQUARE)
for c in "Final":
qtbot.keyClick(importance.editName, c, delay=KEY_DELAY)
qtbot.mouseClick(importance.colButton, QtMouseLeft) qtbot.mouseClick(importance.colButton, QtMouseLeft)
qtbot.mouseClick(importance.saveButton, QtMouseLeft) qtbot.mouseClick(importance.saveButton, QtMouseLeft)
assert importance.listBox.topLevelItemCount() == 4 assert importance.listBox.topLevelItemCount() == 4
assert importance.wasChanged is True assert importance.changed is True
assert importance.getNewList() == ( update = importance.getNewList()
[
{ assert update[0][0] == C.iNew
"key": C.iNew, assert update[0][1].name == "New"
"name": "New", assert update[0][1].color == QColor(100, 100, 100)
"cols": (100, 100, 100) assert update[0][1].shape == nwStatusShape.SQUARE
}, {
"key": C.iMajor, assert update[1][0] == C.iMajor
"name": "Major", assert update[1][1].name == "Major"
"cols": (200, 150, 0) assert update[1][1].color == QColor(200, 150, 0)
}, { assert update[1][1].shape == nwStatusShape.SQUARE
"key": C.iMain,
"name": "Main", assert update[2][0] == C.iMain
"cols": (50, 200, 0) assert update[2][1].name == "Main"
}, { assert update[2][1].color == QColor(50, 200, 0)
"key": None, assert update[2][1].shape == nwStatusShape.SQUARE
"name": "Final",
"cols": (20, 30, 40) assert update[3][0] is None
} assert update[3][1].name == "Final"
], [ assert update[3][1].color == QColor(20, 30, 40)
C.iMinor # Deleted item assert update[3][1].shape == nwStatusShape.TRIANGLE
]
)
# Check Project # Check Project
projSettings._doSave() projSettings._doSave()
statusItems = dict(project.data.itemStatus.items()) statusItems = dict(project.data.itemStatus.iterItems())
assert statusItems[C.sNew]["name"] == "New" assert statusItems[C.sNew].name == "New"
assert statusItems[C.sDraft]["name"] == "Draft" assert statusItems[C.sDraft].name == "Draft"
assert statusItems[C.sFinished]["name"] == "Finished" assert statusItems[C.sFinished].name == "Finished"
assert statusItems["s000013"]["name"] == "Final" assert statusItems["s000013"].name == "Final"
importItems = dict(project.data.itemImport.items()) importItems = dict(project.data.itemImport.iterItems())
assert importItems[C.iNew]["name"] == "New" assert importItems[C.iNew].name == "New"
assert importItems[C.iMajor]["name"] == "Major" assert importItems[C.iMajor].name == "Major"
assert importItems[C.iMain]["name"] == "Main" assert importItems[C.iMain].name == "Main"
assert importItems["i000014"]["name"] == "Final" assert importItems["i000014"].name == "Final"
# qtbot.stop() # qtbot.stop()