diff --git a/tests/test_core/test_core_project.py b/tests/test_core/test_core_project.py index 8a4c0b8f..bfc896a3 100644 --- a/tests/test_core/test_core_project.py +++ b/tests/test_core/test_core_project.py @@ -494,11 +494,11 @@ def testCoreProject_StatusImport(mockGUI, fncPath, mockRnd): # ==================== project.data.itemStatus.resetCounts() - for key in list(project.data.itemStatus.keys()): + for key in list(project.data.itemStatus._store.keys()): assert project.data.itemStatus.remove(key) is True project.data.itemImport.resetCounts() - for key in list(project.data.itemImport.keys()): + for key in list(project.data.itemImport._store.keys()): assert project.data.itemImport.remove(key) is True assert len(project.data.itemStatus) == 0 diff --git a/tests/test_core/test_core_projectxml.py b/tests/test_core/test_core_projectxml.py index 3971e136..20138bf5 100644 --- a/tests/test_core/test_core_projectxml.py +++ b/tests/test_core/test_core_projectxml.py @@ -30,6 +30,8 @@ from novelwriter.constants import nwFiles from tools import cmpFiles, writeFile from mocked import causeOSError +from PyQt5.QtGui import QColor + from novelwriter.core.item import NWItem from novelwriter.core.projectxml import ProjectXMLReader, ProjectXMLWriter, XMLReadState from novelwriter.core.projectdata import NWProjectData @@ -167,18 +169,18 @@ def testCoreProjectXML_ReadCurrent(monkeypatch, tstPaths, fncPath): assert data.itemImport.name("i2d7a54") == "Major" assert data.itemImport.name("i56be10") == "Main" - assert data.itemStatus.cols("sf12341") == (100, 100, 100) - assert data.itemStatus.cols("sf24ce6") == (200, 50, 0) - assert data.itemStatus.cols("sc24b8f") == (182, 60, 0) - assert data.itemStatus.cols("s90e6c9") == (193, 129, 0) - assert data.itemStatus.cols("sd51c5b") == (193, 129, 0) - assert data.itemStatus.cols("s8ae72a") == (193, 129, 0) - assert data.itemStatus.cols("s78ea90") == (58, 180, 58) + assert data.itemStatus.cols("sf12341") == QColor(100, 100, 100) + assert data.itemStatus.cols("sf24ce6") == QColor(200, 50, 0) + assert data.itemStatus.cols("sc24b8f") == QColor(182, 60, 0) + assert data.itemStatus.cols("s90e6c9") == QColor(193, 129, 0) + assert data.itemStatus.cols("sd51c5b") == QColor(193, 129, 0) + assert data.itemStatus.cols("s8ae72a") == QColor(193, 129, 0) + assert data.itemStatus.cols("s78ea90") == QColor(58, 180, 58) - assert data.itemImport.cols("ia857f0") == (100, 100, 100) - assert data.itemImport.cols("icfb3a5") == (0, 122, 188) - assert data.itemImport.cols("i2d7a54") == (21, 0, 180) - assert data.itemImport.cols("i56be10") == (117, 0, 175) + assert data.itemImport.cols("ia857f0") == QColor(100, 100, 100) + assert data.itemImport.cols("icfb3a5") == QColor(0, 122, 188) + assert data.itemImport.cols("i2d7a54") == QColor(21, 0, 180) + assert data.itemImport.cols("i56be10") == QColor(117, 0, 175) assert data.itemStatus.count("sf12341") == 4 assert data.itemStatus.count("sf24ce6") == 2 @@ -285,18 +287,18 @@ def testCoreProjectXML_ReadLegacy10(tstPaths, fncPath, mockRnd): assert data.itemImport.name("i000009") == "Major" assert data.itemImport.name("i00000a") == "Main" - assert data.itemStatus.cols("s000000") == (100, 100, 100) - assert data.itemStatus.cols("s000001") == (200, 50, 0) - assert data.itemStatus.cols("s000002") == (182, 60, 0) - assert data.itemStatus.cols("s000003") == (193, 129, 0) - assert data.itemStatus.cols("s000004") == (193, 129, 0) - assert data.itemStatus.cols("s000005") == (193, 129, 0) - assert data.itemStatus.cols("s000006") == (58, 180, 58) + assert data.itemStatus.cols("s000000") == QColor(100, 100, 100) + assert data.itemStatus.cols("s000001") == QColor(200, 50, 0) + assert data.itemStatus.cols("s000002") == QColor(182, 60, 0) + assert data.itemStatus.cols("s000003") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000004") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000005") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000006") == QColor(58, 180, 58) - assert data.itemImport.cols("i000007") == (100, 100, 100) - assert data.itemImport.cols("i000008") == (0, 122, 188) - assert data.itemImport.cols("i000009") == (21, 0, 180) - assert data.itemImport.cols("i00000a") == (117, 0, 175) + assert data.itemImport.cols("i000007") == QColor(100, 100, 100) + assert data.itemImport.cols("i000008") == QColor(0, 122, 188) + assert data.itemImport.cols("i000009") == QColor(21, 0, 180) + assert data.itemImport.cols("i00000a") == QColor(117, 0, 175) assert data.itemStatus.count("s000000") == 0 assert data.itemStatus.count("s000001") == 0 @@ -419,18 +421,18 @@ def testCoreProjectXML_ReadLegacy11(tstPaths, fncPath, mockRnd): assert data.itemImport.name("i000009") == "Major" assert data.itemImport.name("i00000a") == "Main" - assert data.itemStatus.cols("s000000") == (100, 100, 100) - assert data.itemStatus.cols("s000001") == (200, 50, 0) - assert data.itemStatus.cols("s000002") == (182, 60, 0) - assert data.itemStatus.cols("s000003") == (193, 129, 0) - assert data.itemStatus.cols("s000004") == (193, 129, 0) - assert data.itemStatus.cols("s000005") == (193, 129, 0) - assert data.itemStatus.cols("s000006") == (58, 180, 58) + assert data.itemStatus.cols("s000000") == QColor(100, 100, 100) + assert data.itemStatus.cols("s000001") == QColor(200, 50, 0) + assert data.itemStatus.cols("s000002") == QColor(182, 60, 0) + assert data.itemStatus.cols("s000003") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000004") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000005") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000006") == QColor(58, 180, 58) - assert data.itemImport.cols("i000007") == (100, 100, 100) - assert data.itemImport.cols("i000008") == (0, 122, 188) - assert data.itemImport.cols("i000009") == (21, 0, 180) - assert data.itemImport.cols("i00000a") == (117, 0, 175) + assert data.itemImport.cols("i000007") == QColor(100, 100, 100) + assert data.itemImport.cols("i000008") == QColor(0, 122, 188) + assert data.itemImport.cols("i000009") == QColor(21, 0, 180) + assert data.itemImport.cols("i00000a") == QColor(117, 0, 175) assert data.itemStatus.count("s000000") == 0 assert data.itemStatus.count("s000001") == 0 @@ -553,18 +555,18 @@ def testCoreProjectXML_ReadLegacy12(tstPaths, fncPath, mockRnd): assert data.itemImport.name("i000009") == "Major" assert data.itemImport.name("i00000a") == "Main" - assert data.itemStatus.cols("s000000") == (100, 100, 100) - assert data.itemStatus.cols("s000001") == (200, 50, 0) - assert data.itemStatus.cols("s000002") == (182, 60, 0) - assert data.itemStatus.cols("s000003") == (193, 129, 0) - assert data.itemStatus.cols("s000004") == (193, 129, 0) - assert data.itemStatus.cols("s000005") == (193, 129, 0) - assert data.itemStatus.cols("s000006") == (58, 180, 58) + assert data.itemStatus.cols("s000000") == QColor(100, 100, 100) + assert data.itemStatus.cols("s000001") == QColor(200, 50, 0) + assert data.itemStatus.cols("s000002") == QColor(182, 60, 0) + assert data.itemStatus.cols("s000003") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000004") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000005") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000006") == QColor(58, 180, 58) - assert data.itemImport.cols("i000007") == (100, 100, 100) - assert data.itemImport.cols("i000008") == (0, 122, 188) - assert data.itemImport.cols("i000009") == (21, 0, 180) - assert data.itemImport.cols("i00000a") == (117, 0, 175) + assert data.itemImport.cols("i000007") == QColor(100, 100, 100) + assert data.itemImport.cols("i000008") == QColor(0, 122, 188) + assert data.itemImport.cols("i000009") == QColor(21, 0, 180) + assert data.itemImport.cols("i00000a") == QColor(117, 0, 175) assert data.itemStatus.count("s000000") == 0 assert data.itemStatus.count("s000001") == 0 @@ -690,18 +692,18 @@ def testCoreProjectXML_ReadLegacy13(tstPaths, fncPath, mockRnd): assert data.itemImport.name("i000009") == "Major" assert data.itemImport.name("i00000a") == "Main" - assert data.itemStatus.cols("s000000") == (100, 100, 100) - assert data.itemStatus.cols("s000001") == (200, 50, 0) - assert data.itemStatus.cols("s000002") == (182, 60, 0) - assert data.itemStatus.cols("s000003") == (193, 129, 0) - assert data.itemStatus.cols("s000004") == (193, 129, 0) - assert data.itemStatus.cols("s000005") == (193, 129, 0) - assert data.itemStatus.cols("s000006") == (58, 180, 58) + assert data.itemStatus.cols("s000000") == QColor(100, 100, 100) + assert data.itemStatus.cols("s000001") == QColor(200, 50, 0) + assert data.itemStatus.cols("s000002") == QColor(182, 60, 0) + assert data.itemStatus.cols("s000003") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000004") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000005") == QColor(193, 129, 0) + assert data.itemStatus.cols("s000006") == QColor(58, 180, 58) - assert data.itemImport.cols("i000007") == (100, 100, 100) - assert data.itemImport.cols("i000008") == (0, 122, 188) - assert data.itemImport.cols("i000009") == (21, 0, 180) - assert data.itemImport.cols("i00000a") == (117, 0, 175) + assert data.itemImport.cols("i000007") == QColor(100, 100, 100) + assert data.itemImport.cols("i000008") == QColor(0, 122, 188) + assert data.itemImport.cols("i000009") == QColor(21, 0, 180) + assert data.itemImport.cols("i00000a") == QColor(117, 0, 175) assert data.itemStatus.count("s000000") == 0 assert data.itemStatus.count("s000001") == 0 @@ -827,18 +829,18 @@ def testCoreProjectXML_ReadLegacy14(tstPaths, fncPath, mockRnd): assert data.itemImport.name("i2d7a54") == "Major" assert data.itemImport.name("i56be10") == "Main" - assert data.itemStatus.cols("sf12341") == (100, 100, 100) - assert data.itemStatus.cols("sf24ce6") == (200, 50, 0) - assert data.itemStatus.cols("sc24b8f") == (182, 60, 0) - assert data.itemStatus.cols("s90e6c9") == (193, 129, 0) - assert data.itemStatus.cols("sd51c5b") == (193, 129, 0) - assert data.itemStatus.cols("s8ae72a") == (193, 129, 0) - assert data.itemStatus.cols("s78ea90") == (58, 180, 58) + assert data.itemStatus.cols("sf12341") == QColor(100, 100, 100) + assert data.itemStatus.cols("sf24ce6") == QColor(200, 50, 0) + assert data.itemStatus.cols("sc24b8f") == QColor(182, 60, 0) + assert data.itemStatus.cols("s90e6c9") == QColor(193, 129, 0) + assert data.itemStatus.cols("sd51c5b") == QColor(193, 129, 0) + assert data.itemStatus.cols("s8ae72a") == QColor(193, 129, 0) + assert data.itemStatus.cols("s78ea90") == QColor(58, 180, 58) - assert data.itemImport.cols("ia857f0") == (100, 100, 100) - assert data.itemImport.cols("icfb3a5") == (0, 122, 188) - assert data.itemImport.cols("i2d7a54") == (21, 0, 180) - assert data.itemImport.cols("i56be10") == (117, 0, 175) + assert data.itemImport.cols("ia857f0") == QColor(100, 100, 100) + assert data.itemImport.cols("icfb3a5") == QColor(0, 122, 188) + assert data.itemImport.cols("i2d7a54") == QColor(21, 0, 180) + assert data.itemImport.cols("i56be10") == QColor(117, 0, 175) assert data.itemStatus.count("sf12341") == 4 assert data.itemStatus.count("sf24ce6") == 2 diff --git a/tests/test_core/test_core_status.py b/tests/test_core/test_core_status.py index 11a8ab7b..748663ea 100644 --- a/tests/test_core/test_core_status.py +++ b/tests/test_core/test_core_status.py @@ -24,7 +24,7 @@ import pytest from tools import C -from PyQt5.QtGui import QIcon +from PyQt5.QtGui import QColor, QIcon from novelwriter.core.status import NWStatus from novelwriter.enum import nwStatusShape @@ -97,34 +97,15 @@ def testCoreStatus_Iterator(mockRnd): # Direct access entry = nStatus[statusKeys[0]] - assert entry["cols"] == (100, 100, 100) - assert entry["name"] == "New" - assert entry["count"] == 0 - assert isinstance(entry["icon"], QIcon) + assert entry.colour == QColor(100, 100, 100) + assert entry.name == "New" + assert entry.count == 0 + assert isinstance(entry.icon, QIcon) - # Iterate - entries = list(nStatus) - assert len(entries) == 4 + # Length + assert len(nStatus._store) == 4 assert len(nStatus) == 4 - # Keys - assert list(nStatus.keys()) == statusKeys - - # Items - for index, (key, entry) in enumerate(nStatus.items()): - assert key == statusKeys[index] - assert "cols" in entry - assert "name" in entry - assert "count" in entry - assert "icon" in entry - - # Valuse - for entry in nStatus.values(): - assert "cols" in entry - assert "name" in entry - assert "count" in entry - assert "icon" in entry - # END Test testCoreStatus_Iterator @@ -138,23 +119,23 @@ def testCoreStatus_Entries(mockRnd): # Have a key nStatus.write(statusKeys[0], "Entry 1", (200, 100, 50), nwStatusShape.SQUARE) - assert nStatus[statusKeys[0]]["name"] == "Entry 1" - assert nStatus[statusKeys[0]]["cols"] == (200, 100, 50) + assert nStatus[statusKeys[0]].name == "Entry 1" + assert nStatus[statusKeys[0]].colour == QColor(200, 100, 50) # Don't have a key nStatus.write(None, "Entry 2", (210, 110, 60), nwStatusShape.SQUARE) - assert nStatus[statusKeys[1]]["name"] == "Entry 2" - assert nStatus[statusKeys[1]]["cols"] == (210, 110, 60) + assert nStatus[statusKeys[1]].name == "Entry 2" + assert nStatus[statusKeys[1]].colour == QColor(210, 110, 60) # Wrong colour spec nStatus.write(None, "Entry 3", "what?", nwStatusShape.SQUARE) # type: ignore - assert nStatus[statusKeys[2]]["name"] == "Entry 3" - assert nStatus[statusKeys[2]]["cols"] == (100, 100, 100) + assert nStatus[statusKeys[2]].name == "Entry 3" + assert nStatus[statusKeys[2]].colour == QColor(100, 100, 100) # Wrong colour count - nStatus.write(None, "Entry 4", (10, 20), nwStatusShape.SQUARE) - assert nStatus[statusKeys[3]]["name"] == "Entry 4" - assert nStatus[statusKeys[3]]["cols"] == (100, 100, 100) + nStatus.write(None, "Entry 4", (10, 20), nwStatusShape.SQUARE) # type: ignore + assert nStatus[statusKeys[3]].name == "Entry 4" + assert nStatus[statusKeys[3]].colour == QColor(100, 100, 100) # Check # ===== @@ -178,11 +159,11 @@ def testCoreStatus_Entries(mockRnd): # Colour Access # ============= - assert nStatus.cols(statusKeys[0]) == (200, 100, 50) - assert nStatus.cols(statusKeys[1]) == (210, 110, 60) - assert nStatus.cols(statusKeys[2]) == (100, 100, 100) - assert nStatus.cols(statusKeys[3]) == (100, 100, 100) - assert nStatus.cols("blablabla") == (200, 100, 50) + assert nStatus.cols(statusKeys[0]) == QColor(200, 100, 50) + assert nStatus.cols(statusKeys[1]) == QColor(210, 110, 60) + assert nStatus.cols(statusKeys[2]) == QColor(100, 100, 100) + assert nStatus.cols(statusKeys[3]) == QColor(100, 100, 100) + assert nStatus.cols("blablabla") == QColor(200, 100, 50) # Icon Access # =========== @@ -217,7 +198,7 @@ def testCoreStatus_Entries(mockRnd): # Reorder # ======= - cOrder = list(nStatus.keys()) + cOrder = list(nStatus._store.keys()) assert cOrder == statusKeys # Wrong length @@ -226,7 +207,7 @@ def testCoreStatus_Entries(mockRnd): # No change assert nStatus.reorder(cOrder) is False - # Actual reaorder + # Actual re-order nOrder = [ statusKeys[0], statusKeys[2], @@ -234,17 +215,17 @@ def testCoreStatus_Entries(mockRnd): statusKeys[3], ] assert nStatus.reorder(nOrder) is True - assert list(nStatus.keys()) == nOrder + assert list(nStatus._store.keys()) == nOrder # Add an unknown key wOrder = nOrder.copy() wOrder[3] = nStatus._newKey() assert nStatus.reorder(wOrder) is False - assert list(nStatus.keys()) == nOrder + assert list(nStatus._store.keys()) == nOrder # Put it back assert nStatus.reorder(cOrder) is True - assert list(nStatus.keys()) == cOrder + assert list(nStatus._store.keys()) == cOrder # Default # ======= @@ -254,7 +235,7 @@ def testCoreStatus_Entries(mockRnd): assert nStatus.check("Entry 5") == "" assert nStatus.name("blablabla") == "" - assert nStatus.cols("blablabla") == (100, 100, 100) + assert nStatus.cols("blablabla") == QColor(100, 100, 100) assert nStatus.count("blablabla") == 0 assert isinstance(nStatus.icon("blablabla"), QIcon)