Update core tests

This commit is contained in:
Veronica Berglyd Olsen
2024-04-10 21:39:23 +02:00
parent f17302439e
commit adfd003532
4 changed files with 378 additions and 408 deletions
+2 -2
View File
@@ -553,8 +553,8 @@ def testCoreItem_ClassDefaults(mockGUI):
def testCoreItem_PackUnpack(mockGUI, caplog, mockRnd): def testCoreItem_PackUnpack(mockGUI, caplog, mockRnd):
"""Test packing and unpacking entries for the NWItem class.""" """Test packing and unpacking entries for the NWItem class."""
project = NWProject() project = NWProject()
project.data.itemStatus.write(None, "New", (100, 100, 100), "SQUARE") project.data.itemStatus.add(None, "New", (100, 100, 100), "SQUARE", 0)
project.data.itemImport.write(None, "New", (100, 100, 100), "SQUARE") project.data.itemImport.add(None, "New", (100, 100, 100), "SQUARE", 0)
# Invalid # Invalid
item = NWItem(project, "0000000000000") item = NWItem(project, "0000000000000")
-109
View File
@@ -400,115 +400,6 @@ def testCoreProject_AccessItems(mockGUI, fncPath, mockRnd):
# END Test testCoreProject_AccessItems # END Test testCoreProject_AccessItems
@pytest.mark.core
def testCoreProject_StatusImport(mockGUI, fncPath, mockRnd):
"""Test the status and importance flag handling."""
project = NWProject()
mockRnd.reset()
buildTestProject(project, fncPath)
statusKeys = [C.sNew, C.sNote, C.sDraft, C.sFinished]
importKeys = [C.iNew, C.iMinor, C.iMajor, C.iMain]
# Change Status
# =============
project.tree[C.hNovelRoot].setStatus(statusKeys[3]) # type: ignore
project.tree[C.hPlotRoot].setStatus(statusKeys[2]) # type: ignore
project.tree[C.hCharRoot].setStatus(statusKeys[1]) # type: ignore
project.tree[C.hWorldRoot].setStatus(statusKeys[3]) # type: ignore
assert project.tree[C.hNovelRoot].itemStatus == statusKeys[3] # type: ignore
assert project.tree[C.hPlotRoot].itemStatus == statusKeys[2] # type: ignore
assert project.tree[C.hCharRoot].itemStatus == statusKeys[1] # type: ignore
assert project.tree[C.hWorldRoot].itemStatus == statusKeys[3] # type: ignore
newList = [
{"key": statusKeys[0], "name": "New", "cols": (1, 1, 1)},
{"key": statusKeys[1], "name": "Draft", "cols": (2, 2, 2)}, # These are swapped
{"key": statusKeys[2], "name": "Note", "cols": (3, 3, 3)}, # These are swapped
{"key": statusKeys[3], "name": "Edited", "cols": (4, 4, 4)}, # Renamed
{"key": None, "name": "Finished", "cols": (5, 5, 5)}, # New, reused name
]
assert project.setStatusColours(None, None) is False # type: ignore
assert project.setStatusColours([], []) is False
assert project.setStatusColours(newList, []) is True
assert project.data.itemStatus.name(statusKeys[0]) == "New"
assert project.data.itemStatus.name(statusKeys[1]) == "Draft"
assert project.data.itemStatus.name(statusKeys[2]) == "Note"
assert project.data.itemStatus.name(statusKeys[3]) == "Edited"
assert project.data.itemStatus.cols(statusKeys[0]) == (1, 1, 1)
assert project.data.itemStatus.cols(statusKeys[1]) == (2, 2, 2)
assert project.data.itemStatus.cols(statusKeys[2]) == (3, 3, 3)
assert project.data.itemStatus.cols(statusKeys[3]) == (4, 4, 4)
# Check the new entry
lastKey = project.data.itemStatus.check("s000010")
assert lastKey == "s000010"
assert project.data.itemStatus.name(lastKey) == "Finished"
assert project.data.itemStatus.cols(lastKey) == (5, 5, 5)
# Delete last entry
assert project.setStatusColours([], [lastKey]) is True
assert project.data.itemStatus.name(lastKey) == "New"
# Change Importance
# =================
fHandle = project.newFile("Jane Doe", C.hCharRoot)
project.tree[fHandle].setImport(importKeys[3]) # type: ignore
assert project.tree[fHandle].itemImport == importKeys[3] # type: ignore
newList = [
{"key": importKeys[0], "name": "New", "cols": (1, 1, 1)},
{"key": importKeys[1], "name": "Minor", "cols": (2, 2, 2)},
{"key": importKeys[2], "name": "Major", "cols": (3, 3, 3)},
{"key": importKeys[3], "name": "Min", "cols": (4, 4, 4)},
{"key": None, "name": "Max", "cols": (5, 5, 5)},
]
assert project.setImportColours(None, None) is False # type: ignore
assert project.setImportColours([], []) is False
assert project.setImportColours(newList, []) is True
assert project.data.itemImport.name(importKeys[0]) == "New"
assert project.data.itemImport.name(importKeys[1]) == "Minor"
assert project.data.itemImport.name(importKeys[2]) == "Major"
assert project.data.itemImport.name(importKeys[3]) == "Min"
assert project.data.itemImport.cols(importKeys[0]) == (1, 1, 1)
assert project.data.itemImport.cols(importKeys[1]) == (2, 2, 2)
assert project.data.itemImport.cols(importKeys[2]) == (3, 3, 3)
assert project.data.itemImport.cols(importKeys[3]) == (4, 4, 4)
# Check the new entry
lastKey = project.data.itemImport.check("i000012")
assert lastKey == "i000012"
assert project.data.itemImport.name(lastKey) == "Max"
assert project.data.itemImport.cols(lastKey) == (5, 5, 5)
# Delete last entry
assert project.setImportColours([], [lastKey]) is True
assert project.data.itemImport.name(lastKey) == "New"
# Delete Status/Import
# ====================
project.data.itemStatus.resetCounts()
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._store.keys()):
assert project.data.itemImport.remove(key) is True
assert len(project.data.itemStatus) == 0
assert len(project.data.itemImport) == 0
assert project.saveProject() is True
project.closeProject()
# END Test testCoreProject_StatusImport
@pytest.mark.core @pytest.mark.core
def testCoreProject_Methods(monkeypatch, mockGUI, fncPath, mockRnd): def testCoreProject_Methods(monkeypatch, mockGUI, fncPath, mockRnd):
"""Test other project class methods and functions.""" """Test other project class methods and functions."""
+281 -203
View File
@@ -27,6 +27,7 @@ from shutil import copyfile
from datetime import datetime from datetime import datetime
from novelwriter.constants import nwFiles from novelwriter.constants import nwFiles
from novelwriter.enum import nwStatusShape
from tools import cmpFiles, writeFile from tools import cmpFiles, writeFile
from mocked import causeOSError from mocked import causeOSError
@@ -156,44 +157,57 @@ def testCoreProjectXML_ReadCurrent(monkeypatch, tstPaths, fncPath):
assert data.getLastHandle("novelTree") == "7031beac91f75" assert data.getLastHandle("novelTree") == "7031beac91f75"
assert data.getLastHandle("outline") == "7031beac91f75" assert data.getLastHandle("outline") == "7031beac91f75"
assert data.itemStatus.name("sf12341") == "New" assert data.itemStatus["sf12341"].name == "New"
assert data.itemStatus.name("sf24ce6") == "Notes" assert data.itemStatus["sf24ce6"].name == "Notes"
assert data.itemStatus.name("sc24b8f") == "Started" assert data.itemStatus["sc24b8f"].name == "Started"
assert data.itemStatus.name("s90e6c9") == "1st Draft" assert data.itemStatus["s90e6c9"].name == "1st Draft"
assert data.itemStatus.name("sd51c5b") == "2nd Draft" assert data.itemStatus["sd51c5b"].name == "2nd Draft"
assert data.itemStatus.name("s8ae72a") == "3rd Draft" assert data.itemStatus["s8ae72a"].name == "3rd Draft"
assert data.itemStatus.name("s78ea90") == "Finished" assert data.itemStatus["s78ea90"].name == "Finished"
assert data.itemImport.name("ia857f0") == "None" assert data.itemImport["ia857f0"].name == "None"
assert data.itemImport.name("icfb3a5") == "Minor" assert data.itemImport["icfb3a5"].name == "Minor"
assert data.itemImport.name("i2d7a54") == "Major" assert data.itemImport["i2d7a54"].name == "Major"
assert data.itemImport.name("i56be10") == "Main" assert data.itemImport["i56be10"].name == "Main"
assert data.itemStatus.cols("sf12341") == QColor(100, 100, 100) assert data.itemStatus["sf12341"].color == QColor(100, 100, 100)
assert data.itemStatus.cols("sf24ce6") == QColor(200, 50, 0) assert data.itemStatus["sf24ce6"].color == QColor(200, 50, 0)
assert data.itemStatus.cols("sc24b8f") == QColor(182, 60, 0) assert data.itemStatus["sc24b8f"].color == QColor(182, 60, 0)
assert data.itemStatus.cols("s90e6c9") == QColor(193, 129, 0) assert data.itemStatus["s90e6c9"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("sd51c5b") == QColor(193, 129, 0) assert data.itemStatus["sd51c5b"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s8ae72a") == QColor(193, 129, 0) assert data.itemStatus["s8ae72a"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s78ea90") == QColor(58, 180, 58) assert data.itemStatus["s78ea90"].color == QColor(58, 180, 58)
assert data.itemImport.cols("ia857f0") == QColor(100, 100, 100) assert data.itemImport["ia857f0"].color == QColor(100, 100, 100)
assert data.itemImport.cols("icfb3a5") == QColor(0, 122, 188) assert data.itemImport["icfb3a5"].color == QColor(0, 122, 188)
assert data.itemImport.cols("i2d7a54") == QColor(21, 0, 180) assert data.itemImport["i2d7a54"].color == QColor(21, 0, 180)
assert data.itemImport.cols("i56be10") == QColor(117, 0, 175) assert data.itemImport["i56be10"].color == QColor(117, 0, 175)
assert data.itemStatus.count("sf12341") == 4 assert data.itemStatus["sf12341"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("sf24ce6") == 2 assert data.itemStatus["sf24ce6"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("sc24b8f") == 3 assert data.itemStatus["sc24b8f"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s90e6c9") == 7 assert data.itemStatus["s90e6c9"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("sd51c5b") == 0 assert data.itemStatus["sd51c5b"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s8ae72a") == 0 assert data.itemStatus["s8ae72a"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s78ea90") == 1 assert data.itemStatus["s78ea90"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("ia857f0") == 5 assert data.itemImport["ia857f0"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("icfb3a5") == 2 assert data.itemImport["icfb3a5"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i2d7a54") == 2 assert data.itemImport["i2d7a54"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i56be10") == 1 assert data.itemImport["i56be10"].shape == nwStatusShape.SQUARE
assert data.itemStatus["sf12341"].count == 4
assert data.itemStatus["sf24ce6"].count == 2
assert data.itemStatus["sc24b8f"].count == 3
assert data.itemStatus["s90e6c9"].count == 7
assert data.itemStatus["sd51c5b"].count == 0
assert data.itemStatus["s8ae72a"].count == 0
assert data.itemStatus["s78ea90"].count == 1
assert data.itemImport["ia857f0"].count == 5
assert data.itemImport["icfb3a5"].count == 2
assert data.itemImport["i2d7a54"].count == 2
assert data.itemImport["i56be10"].count == 1
# Compare content # Compare content
dumpFile = tstPaths.outDir / "projectXML_ReadCurrent.json" dumpFile = tstPaths.outDir / "projectXML_ReadCurrent.json"
@@ -274,44 +288,57 @@ def testCoreProjectXML_ReadLegacy10(tstPaths, fncPath, mockRnd):
assert data.getLastHandle("novelTree") is None # Doesn't exist in 1.0 assert data.getLastHandle("novelTree") is None # Doesn't exist in 1.0
assert data.getLastHandle("outline") is None # Doesn't exist in 1.0 assert data.getLastHandle("outline") is None # Doesn't exist in 1.0
assert data.itemStatus.name("s000000") == "New" assert data.itemStatus["s000000"].name == "New"
assert data.itemStatus.name("s000001") == "Notes" assert data.itemStatus["s000001"].name == "Notes"
assert data.itemStatus.name("s000002") == "Started" assert data.itemStatus["s000002"].name == "Started"
assert data.itemStatus.name("s000003") == "1st Draft" assert data.itemStatus["s000003"].name == "1st Draft"
assert data.itemStatus.name("s000004") == "2nd Draft" assert data.itemStatus["s000004"].name == "2nd Draft"
assert data.itemStatus.name("s000005") == "3rd Draft" assert data.itemStatus["s000005"].name == "3rd Draft"
assert data.itemStatus.name("s000006") == "Finished" assert data.itemStatus["s000006"].name == "Finished"
assert data.itemImport.name("i000007") == "None" assert data.itemImport["i000007"].name == "None"
assert data.itemImport.name("i000008") == "Minor" assert data.itemImport["i000008"].name == "Minor"
assert data.itemImport.name("i000009") == "Major" assert data.itemImport["i000009"].name == "Major"
assert data.itemImport.name("i00000a") == "Main" assert data.itemImport["i00000a"].name == "Main"
assert data.itemStatus.cols("s000000") == QColor(100, 100, 100) assert data.itemStatus["s000000"].color == QColor(100, 100, 100)
assert data.itemStatus.cols("s000001") == QColor(200, 50, 0) assert data.itemStatus["s000001"].color == QColor(200, 50, 0)
assert data.itemStatus.cols("s000002") == QColor(182, 60, 0) assert data.itemStatus["s000002"].color == QColor(182, 60, 0)
assert data.itemStatus.cols("s000003") == QColor(193, 129, 0) assert data.itemStatus["s000003"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000004") == QColor(193, 129, 0) assert data.itemStatus["s000004"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000005") == QColor(193, 129, 0) assert data.itemStatus["s000005"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000006") == QColor(58, 180, 58) assert data.itemStatus["s000006"].color == QColor(58, 180, 58)
assert data.itemImport.cols("i000007") == QColor(100, 100, 100) assert data.itemImport["i000007"].color == QColor(100, 100, 100)
assert data.itemImport.cols("i000008") == QColor(0, 122, 188) assert data.itemImport["i000008"].color == QColor(0, 122, 188)
assert data.itemImport.cols("i000009") == QColor(21, 0, 180) assert data.itemImport["i000009"].color == QColor(21, 0, 180)
assert data.itemImport.cols("i00000a") == QColor(117, 0, 175) assert data.itemImport["i00000a"].color == QColor(117, 0, 175)
assert data.itemStatus.count("s000000") == 0 assert data.itemStatus["s000000"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000001") == 0 assert data.itemStatus["s000001"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000002") == 0 assert data.itemStatus["s000002"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000003") == 0 assert data.itemStatus["s000003"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000004") == 0 assert data.itemStatus["s000004"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000005") == 0 assert data.itemStatus["s000005"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000006") == 0 assert data.itemStatus["s000006"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000007") == 0 assert data.itemImport["i000007"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000008") == 0 assert data.itemImport["i000008"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000009") == 0 assert data.itemImport["i000009"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i00000a") == 0 assert data.itemImport["i00000a"].shape == nwStatusShape.SQUARE
assert data.itemStatus["s000000"].count == 0
assert data.itemStatus["s000001"].count == 0
assert data.itemStatus["s000002"].count == 0
assert data.itemStatus["s000003"].count == 0
assert data.itemStatus["s000004"].count == 0
assert data.itemStatus["s000005"].count == 0
assert data.itemStatus["s000006"].count == 0
assert data.itemImport["i000007"].count == 0
assert data.itemImport["i000008"].count == 0
assert data.itemImport["i000009"].count == 0
assert data.itemImport["i00000a"].count == 0
# Compare content # Compare content
dumpFile = tstPaths.outDir / "projectXML_ReadLegacy10.json" dumpFile = tstPaths.outDir / "projectXML_ReadLegacy10.json"
@@ -327,7 +354,7 @@ def testCoreProjectXML_ReadLegacy10(tstPaths, fncPath, mockRnd):
for entry in content: for entry in content:
item = NWItem(mockProject, "0000000000000") # type: ignore item = NWItem(mockProject, "0000000000000") # type: ignore
item.unpack(entry) item.unpack(entry)
status[item.itemHandle] = item.getImportStatus(incIcon=False)[0] status[item.itemHandle] = item.getImportStatus()[0]
packedContent.append(item.pack()) packedContent.append(item.pack())
assert status == { assert status == {
@@ -408,44 +435,57 @@ def testCoreProjectXML_ReadLegacy11(tstPaths, fncPath, mockRnd):
assert data.getLastHandle("novelTree") is None # Doesn't exist in 1.1 assert data.getLastHandle("novelTree") is None # Doesn't exist in 1.1
assert data.getLastHandle("outline") is None # Doesn't exist in 1.1 assert data.getLastHandle("outline") is None # Doesn't exist in 1.1
assert data.itemStatus.name("s000000") == "New" assert data.itemStatus["s000000"].name == "New"
assert data.itemStatus.name("s000001") == "Notes" assert data.itemStatus["s000001"].name == "Notes"
assert data.itemStatus.name("s000002") == "Started" assert data.itemStatus["s000002"].name == "Started"
assert data.itemStatus.name("s000003") == "1st Draft" assert data.itemStatus["s000003"].name == "1st Draft"
assert data.itemStatus.name("s000004") == "2nd Draft" assert data.itemStatus["s000004"].name == "2nd Draft"
assert data.itemStatus.name("s000005") == "3rd Draft" assert data.itemStatus["s000005"].name == "3rd Draft"
assert data.itemStatus.name("s000006") == "Finished" assert data.itemStatus["s000006"].name == "Finished"
assert data.itemImport.name("i000007") == "None" assert data.itemImport["i000007"].name == "None"
assert data.itemImport.name("i000008") == "Minor" assert data.itemImport["i000008"].name == "Minor"
assert data.itemImport.name("i000009") == "Major" assert data.itemImport["i000009"].name == "Major"
assert data.itemImport.name("i00000a") == "Main" assert data.itemImport["i00000a"].name == "Main"
assert data.itemStatus.cols("s000000") == QColor(100, 100, 100) assert data.itemStatus["s000000"].color == QColor(100, 100, 100)
assert data.itemStatus.cols("s000001") == QColor(200, 50, 0) assert data.itemStatus["s000001"].color == QColor(200, 50, 0)
assert data.itemStatus.cols("s000002") == QColor(182, 60, 0) assert data.itemStatus["s000002"].color == QColor(182, 60, 0)
assert data.itemStatus.cols("s000003") == QColor(193, 129, 0) assert data.itemStatus["s000003"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000004") == QColor(193, 129, 0) assert data.itemStatus["s000004"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000005") == QColor(193, 129, 0) assert data.itemStatus["s000005"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000006") == QColor(58, 180, 58) assert data.itemStatus["s000006"].color == QColor(58, 180, 58)
assert data.itemImport.cols("i000007") == QColor(100, 100, 100) assert data.itemImport["i000007"].color == QColor(100, 100, 100)
assert data.itemImport.cols("i000008") == QColor(0, 122, 188) assert data.itemImport["i000008"].color == QColor(0, 122, 188)
assert data.itemImport.cols("i000009") == QColor(21, 0, 180) assert data.itemImport["i000009"].color == QColor(21, 0, 180)
assert data.itemImport.cols("i00000a") == QColor(117, 0, 175) assert data.itemImport["i00000a"].color == QColor(117, 0, 175)
assert data.itemStatus.count("s000000") == 0 assert data.itemStatus["s000000"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000001") == 0 assert data.itemStatus["s000001"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000002") == 0 assert data.itemStatus["s000002"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000003") == 0 assert data.itemStatus["s000003"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000004") == 0 assert data.itemStatus["s000004"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000005") == 0 assert data.itemStatus["s000005"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000006") == 0 assert data.itemStatus["s000006"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000007") == 0 assert data.itemImport["i000007"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000008") == 0 assert data.itemImport["i000008"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000009") == 0 assert data.itemImport["i000009"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i00000a") == 0 assert data.itemImport["i00000a"].shape == nwStatusShape.SQUARE
assert data.itemStatus["s000000"].count == 0
assert data.itemStatus["s000001"].count == 0
assert data.itemStatus["s000002"].count == 0
assert data.itemStatus["s000003"].count == 0
assert data.itemStatus["s000004"].count == 0
assert data.itemStatus["s000005"].count == 0
assert data.itemStatus["s000006"].count == 0
assert data.itemImport["i000007"].count == 0
assert data.itemImport["i000008"].count == 0
assert data.itemImport["i000009"].count == 0
assert data.itemImport["i00000a"].count == 0
# Compare content # Compare content
dumpFile = tstPaths.outDir / "projectXML_ReadLegacy11.json" dumpFile = tstPaths.outDir / "projectXML_ReadLegacy11.json"
@@ -461,7 +501,7 @@ def testCoreProjectXML_ReadLegacy11(tstPaths, fncPath, mockRnd):
for entry in content: for entry in content:
item = NWItem(mockProject, "0000000000000") # type: ignore item = NWItem(mockProject, "0000000000000") # type: ignore
item.unpack(entry) item.unpack(entry)
status[item.itemHandle] = item.getImportStatus(incIcon=False)[0] status[item.itemHandle] = item.getImportStatus()[0]
packedContent.append(item.pack()) packedContent.append(item.pack())
assert status == { assert status == {
@@ -542,44 +582,57 @@ def testCoreProjectXML_ReadLegacy12(tstPaths, fncPath, mockRnd):
assert data.getLastHandle("novelTree") is None # Doesn't exist in 1.2 assert data.getLastHandle("novelTree") is None # Doesn't exist in 1.2
assert data.getLastHandle("outline") is None # Doesn't exist in 1.2 assert data.getLastHandle("outline") is None # Doesn't exist in 1.2
assert data.itemStatus.name("s000000") == "New" assert data.itemStatus["s000000"].name == "New"
assert data.itemStatus.name("s000001") == "Notes" assert data.itemStatus["s000001"].name == "Notes"
assert data.itemStatus.name("s000002") == "Started" assert data.itemStatus["s000002"].name == "Started"
assert data.itemStatus.name("s000003") == "1st Draft" assert data.itemStatus["s000003"].name == "1st Draft"
assert data.itemStatus.name("s000004") == "2nd Draft" assert data.itemStatus["s000004"].name == "2nd Draft"
assert data.itemStatus.name("s000005") == "3rd Draft" assert data.itemStatus["s000005"].name == "3rd Draft"
assert data.itemStatus.name("s000006") == "Finished" assert data.itemStatus["s000006"].name == "Finished"
assert data.itemImport.name("i000007") == "None" assert data.itemImport["i000007"].name == "None"
assert data.itemImport.name("i000008") == "Minor" assert data.itemImport["i000008"].name == "Minor"
assert data.itemImport.name("i000009") == "Major" assert data.itemImport["i000009"].name == "Major"
assert data.itemImport.name("i00000a") == "Main" assert data.itemImport["i00000a"].name == "Main"
assert data.itemStatus.cols("s000000") == QColor(100, 100, 100) assert data.itemStatus["s000000"].color == QColor(100, 100, 100)
assert data.itemStatus.cols("s000001") == QColor(200, 50, 0) assert data.itemStatus["s000001"].color == QColor(200, 50, 0)
assert data.itemStatus.cols("s000002") == QColor(182, 60, 0) assert data.itemStatus["s000002"].color == QColor(182, 60, 0)
assert data.itemStatus.cols("s000003") == QColor(193, 129, 0) assert data.itemStatus["s000003"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000004") == QColor(193, 129, 0) assert data.itemStatus["s000004"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000005") == QColor(193, 129, 0) assert data.itemStatus["s000005"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000006") == QColor(58, 180, 58) assert data.itemStatus["s000006"].color == QColor(58, 180, 58)
assert data.itemImport.cols("i000007") == QColor(100, 100, 100) assert data.itemImport["i000007"].color == QColor(100, 100, 100)
assert data.itemImport.cols("i000008") == QColor(0, 122, 188) assert data.itemImport["i000008"].color == QColor(0, 122, 188)
assert data.itemImport.cols("i000009") == QColor(21, 0, 180) assert data.itemImport["i000009"].color == QColor(21, 0, 180)
assert data.itemImport.cols("i00000a") == QColor(117, 0, 175) assert data.itemImport["i00000a"].color == QColor(117, 0, 175)
assert data.itemStatus.count("s000000") == 0 assert data.itemStatus["s000000"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000001") == 0 assert data.itemStatus["s000001"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000002") == 0 assert data.itemStatus["s000002"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000003") == 0 assert data.itemStatus["s000003"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000004") == 0 assert data.itemStatus["s000004"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000005") == 0 assert data.itemStatus["s000005"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000006") == 0 assert data.itemStatus["s000006"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000007") == 0 assert data.itemImport["i000007"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000008") == 0 assert data.itemImport["i000008"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000009") == 0 assert data.itemImport["i000009"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i00000a") == 0 assert data.itemImport["i00000a"].shape == nwStatusShape.SQUARE
assert data.itemStatus["s000000"].count == 0
assert data.itemStatus["s000001"].count == 0
assert data.itemStatus["s000002"].count == 0
assert data.itemStatus["s000003"].count == 0
assert data.itemStatus["s000004"].count == 0
assert data.itemStatus["s000005"].count == 0
assert data.itemStatus["s000006"].count == 0
assert data.itemImport["i000007"].count == 0
assert data.itemImport["i000008"].count == 0
assert data.itemImport["i000009"].count == 0
assert data.itemImport["i00000a"].count == 0
# Compare content # Compare content
dumpFile = tstPaths.outDir / "projectXML_ReadLegacy12.json" dumpFile = tstPaths.outDir / "projectXML_ReadLegacy12.json"
@@ -595,7 +648,7 @@ def testCoreProjectXML_ReadLegacy12(tstPaths, fncPath, mockRnd):
for entry in content: for entry in content:
item = NWItem(mockProject, "0000000000000") # type: ignore item = NWItem(mockProject, "0000000000000") # type: ignore
item.unpack(entry) item.unpack(entry)
status[item.itemHandle] = item.getImportStatus(incIcon=False)[0] status[item.itemHandle] = item.getImportStatus()[0]
packedContent.append(item.pack()) packedContent.append(item.pack())
assert status == { assert status == {
@@ -679,44 +732,57 @@ def testCoreProjectXML_ReadLegacy13(tstPaths, fncPath, mockRnd):
assert data.getLastHandle("novelTree") is None # Doesn't exist in 1.3 assert data.getLastHandle("novelTree") is None # Doesn't exist in 1.3
assert data.getLastHandle("outline") is None # Doesn't exist in 1.3 assert data.getLastHandle("outline") is None # Doesn't exist in 1.3
assert data.itemStatus.name("s000000") == "New" assert data.itemStatus["s000000"].name == "New"
assert data.itemStatus.name("s000001") == "Notes" assert data.itemStatus["s000001"].name == "Notes"
assert data.itemStatus.name("s000002") == "Started" assert data.itemStatus["s000002"].name == "Started"
assert data.itemStatus.name("s000003") == "1st Draft" assert data.itemStatus["s000003"].name == "1st Draft"
assert data.itemStatus.name("s000004") == "2nd Draft" assert data.itemStatus["s000004"].name == "2nd Draft"
assert data.itemStatus.name("s000005") == "3rd Draft" assert data.itemStatus["s000005"].name == "3rd Draft"
assert data.itemStatus.name("s000006") == "Finished" assert data.itemStatus["s000006"].name == "Finished"
assert data.itemImport.name("i000007") == "None" assert data.itemImport["i000007"].name == "None"
assert data.itemImport.name("i000008") == "Minor" assert data.itemImport["i000008"].name == "Minor"
assert data.itemImport.name("i000009") == "Major" assert data.itemImport["i000009"].name == "Major"
assert data.itemImport.name("i00000a") == "Main" assert data.itemImport["i00000a"].name == "Main"
assert data.itemStatus.cols("s000000") == QColor(100, 100, 100) assert data.itemStatus["s000000"].color == QColor(100, 100, 100)
assert data.itemStatus.cols("s000001") == QColor(200, 50, 0) assert data.itemStatus["s000001"].color == QColor(200, 50, 0)
assert data.itemStatus.cols("s000002") == QColor(182, 60, 0) assert data.itemStatus["s000002"].color == QColor(182, 60, 0)
assert data.itemStatus.cols("s000003") == QColor(193, 129, 0) assert data.itemStatus["s000003"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000004") == QColor(193, 129, 0) assert data.itemStatus["s000004"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000005") == QColor(193, 129, 0) assert data.itemStatus["s000005"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s000006") == QColor(58, 180, 58) assert data.itemStatus["s000006"].color == QColor(58, 180, 58)
assert data.itemImport.cols("i000007") == QColor(100, 100, 100) assert data.itemImport["i000007"].color == QColor(100, 100, 100)
assert data.itemImport.cols("i000008") == QColor(0, 122, 188) assert data.itemImport["i000008"].color == QColor(0, 122, 188)
assert data.itemImport.cols("i000009") == QColor(21, 0, 180) assert data.itemImport["i000009"].color == QColor(21, 0, 180)
assert data.itemImport.cols("i00000a") == QColor(117, 0, 175) assert data.itemImport["i00000a"].color == QColor(117, 0, 175)
assert data.itemStatus.count("s000000") == 0 assert data.itemStatus["s000000"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000001") == 0 assert data.itemStatus["s000001"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000002") == 0 assert data.itemStatus["s000002"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000003") == 0 assert data.itemStatus["s000003"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000004") == 0 assert data.itemStatus["s000004"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000005") == 0 assert data.itemStatus["s000005"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s000006") == 0 assert data.itemStatus["s000006"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000007") == 0 assert data.itemImport["i000007"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000008") == 0 assert data.itemImport["i000008"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i000009") == 0 assert data.itemImport["i000009"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i00000a") == 0 assert data.itemImport["i00000a"].shape == nwStatusShape.SQUARE
assert data.itemStatus["s000000"].count == 0
assert data.itemStatus["s000001"].count == 0
assert data.itemStatus["s000002"].count == 0
assert data.itemStatus["s000003"].count == 0
assert data.itemStatus["s000004"].count == 0
assert data.itemStatus["s000005"].count == 0
assert data.itemStatus["s000006"].count == 0
assert data.itemImport["i000007"].count == 0
assert data.itemImport["i000008"].count == 0
assert data.itemImport["i000009"].count == 0
assert data.itemImport["i00000a"].count == 0
# Compare content # Compare content
dumpFile = tstPaths.outDir / "projectXML_ReadLegacy13.json" dumpFile = tstPaths.outDir / "projectXML_ReadLegacy13.json"
@@ -732,7 +798,7 @@ def testCoreProjectXML_ReadLegacy13(tstPaths, fncPath, mockRnd):
for entry in content: for entry in content:
item = NWItem(mockProject, "0000000000000") # type: ignore item = NWItem(mockProject, "0000000000000") # type: ignore
item.unpack(entry) item.unpack(entry)
status[item.itemHandle] = item.getImportStatus(incIcon=False)[0] status[item.itemHandle] = item.getImportStatus()[0]
packedContent.append(item.pack()) packedContent.append(item.pack())
assert status == { assert status == {
@@ -816,44 +882,56 @@ def testCoreProjectXML_ReadLegacy14(tstPaths, fncPath, mockRnd):
assert data.getLastHandle("novelTree") is None # Doesn't exist in 1.3 assert data.getLastHandle("novelTree") is None # Doesn't exist in 1.3
assert data.getLastHandle("outline") is None # Doesn't exist in 1.3 assert data.getLastHandle("outline") is None # Doesn't exist in 1.3
assert data.itemStatus.name("sf12341") == "New" assert data.itemStatus["sf12341"].name == "New"
assert data.itemStatus.name("sf24ce6") == "Notes" assert data.itemStatus["sf24ce6"].name == "Notes"
assert data.itemStatus.name("sc24b8f") == "Started" assert data.itemStatus["sc24b8f"].name == "Started"
assert data.itemStatus.name("s90e6c9") == "1st Draft" assert data.itemStatus["s90e6c9"].name == "1st Draft"
assert data.itemStatus.name("sd51c5b") == "2nd Draft" assert data.itemStatus["sd51c5b"].name == "2nd Draft"
assert data.itemStatus.name("s8ae72a") == "3rd Draft" assert data.itemStatus["s8ae72a"].name == "3rd Draft"
assert data.itemStatus.name("s78ea90") == "Finished" assert data.itemStatus["s78ea90"].name == "Finished"
assert data.itemImport.name("ia857f0") == "None" assert data.itemImport["ia857f0"].name == "None"
assert data.itemImport.name("icfb3a5") == "Minor" assert data.itemImport["icfb3a5"].name == "Minor"
assert data.itemImport.name("i2d7a54") == "Major" assert data.itemImport["i2d7a54"].name == "Major"
assert data.itemImport.name("i56be10") == "Main" assert data.itemImport["i56be10"].name == "Main"
assert data.itemStatus.cols("sf12341") == QColor(100, 100, 100) assert data.itemStatus["sf12341"].color == QColor(100, 100, 100)
assert data.itemStatus.cols("sf24ce6") == QColor(200, 50, 0) assert data.itemStatus["sf24ce6"].color == QColor(200, 50, 0)
assert data.itemStatus.cols("sc24b8f") == QColor(182, 60, 0) assert data.itemStatus["sc24b8f"].color == QColor(182, 60, 0)
assert data.itemStatus.cols("s90e6c9") == QColor(193, 129, 0) assert data.itemStatus["s90e6c9"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("sd51c5b") == QColor(193, 129, 0) assert data.itemStatus["sd51c5b"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s8ae72a") == QColor(193, 129, 0) assert data.itemStatus["s8ae72a"].color == QColor(193, 129, 0)
assert data.itemStatus.cols("s78ea90") == QColor(58, 180, 58) assert data.itemStatus["s78ea90"].color == QColor(58, 180, 58)
assert data.itemImport.cols("ia857f0") == QColor(100, 100, 100) assert data.itemImport["ia857f0"].color == QColor(100, 100, 100)
assert data.itemImport.cols("icfb3a5") == QColor(0, 122, 188) assert data.itemImport["icfb3a5"].color == QColor(0, 122, 188)
assert data.itemImport.cols("i2d7a54") == QColor(21, 0, 180) assert data.itemImport["i2d7a54"].color == QColor(21, 0, 180)
assert data.itemImport.cols("i56be10") == QColor(117, 0, 175) assert data.itemImport["i56be10"].color == QColor(117, 0, 175)
assert data.itemStatus.count("sf12341") == 4 assert data.itemStatus["sf12341"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("sf24ce6") == 2 assert data.itemStatus["sf24ce6"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("sc24b8f") == 3 assert data.itemStatus["sc24b8f"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s90e6c9") == 7 assert data.itemStatus["s90e6c9"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("sd51c5b") == 0 assert data.itemStatus["sd51c5b"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s8ae72a") == 0 assert data.itemStatus["s8ae72a"].shape == nwStatusShape.SQUARE
assert data.itemStatus.count("s78ea90") == 1 assert data.itemStatus["s78ea90"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("ia857f0") == 5 assert data.itemImport["ia857f0"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("icfb3a5") == 2 assert data.itemImport["icfb3a5"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i2d7a54") == 2 assert data.itemImport["i2d7a54"].shape == nwStatusShape.SQUARE
assert data.itemImport.count("i56be10") == 1 assert data.itemImport["i56be10"].shape == nwStatusShape.SQUARE
assert data.itemStatus["sf12341"].count == 4
assert data.itemStatus["sf24ce6"].count == 2
assert data.itemStatus["sc24b8f"].count == 3
assert data.itemStatus["s90e6c9"].count == 7
assert data.itemStatus["sd51c5b"].count == 0
assert data.itemStatus["s8ae72a"].count == 0
assert data.itemStatus["s78ea90"].count == 1
assert data.itemImport["ia857f0"].count == 5
assert data.itemImport["icfb3a5"].count == 2
assert data.itemImport["i2d7a54"].count == 2
assert data.itemImport["i56be10"].count == 1
# Compare content # Compare content
dumpFile = tstPaths.outDir / "projectXML_ReadLegacy14.json" dumpFile = tstPaths.outDir / "projectXML_ReadLegacy14.json"
@@ -869,7 +947,7 @@ def testCoreProjectXML_ReadLegacy14(tstPaths, fncPath, mockRnd):
for entry in content: for entry in content:
item = NWItem(mockProject, "0000000000000") # type: ignore item = NWItem(mockProject, "0000000000000") # type: ignore
item.unpack(entry) item.unpack(entry)
status[item.itemHandle] = item.getImportStatus(incIcon=False)[0] status[item.itemHandle] = item.getImportStatus()[0]
packedContent.append(item.pack()) packedContent.append(item.pack())
assert status == { assert status == {
+95 -94
View File
@@ -49,14 +49,14 @@ def testCoreStatus_Internal(mockRnd):
assert nStatus._newKey() == statusKeys[1] assert nStatus._newKey() == statusKeys[1]
# Key collision, should move to key 3 # Key collision, should move to key 3
nStatus.write(statusKeys[2], "Crash", (0, 0, 0), nwStatusShape.SQUARE) nStatus.add(statusKeys[2], "Crash", (0, 0, 0), "SQUARE", 0)
assert nStatus._newKey() == statusKeys[3] assert nStatus._newKey() == statusKeys[3]
assert nImport._newKey() == importKeys[0] assert nImport._newKey() == importKeys[0]
assert nImport._newKey() == importKeys[1] assert nImport._newKey() == importKeys[1]
# Key collision, should move to key 3 # Key collision, should move to key 3
nImport.write(importKeys[2], "Crash", (0, 0, 0), nwStatusShape.SQUARE) nImport.add(importKeys[2], "Crash", (0, 0, 0), "SQUARE", 0)
assert nImport._newKey() == importKeys[3] assert nImport._newKey() == importKeys[3]
# Check Key # Check Key
@@ -90,14 +90,14 @@ def testCoreStatus_Iterator(mockRnd):
"""Test the iterator functions of the NWStatus class.""" """Test the iterator functions of the NWStatus class."""
nStatus = NWStatus(NWStatus.STATUS) nStatus = NWStatus(NWStatus.STATUS)
nStatus.write(None, "New", (100, 100, 100), nwStatusShape.SQUARE) nStatus.add(None, "New", (100, 100, 100), "SQUARE", 0)
nStatus.write(None, "Note", (200, 50, 0), nwStatusShape.SQUARE) nStatus.add(None, "Note", (200, 50, 0), "SQUARE", 0)
nStatus.write(None, "Draft", (200, 150, 0), nwStatusShape.SQUARE) nStatus.add(None, "Draft", (200, 150, 0), "SQUARE", 0)
nStatus.write(None, "Finished", (50, 200, 0), nwStatusShape.SQUARE) nStatus.add(None, "Finished", (50, 200, 0), "SQUARE", 0)
# Direct access # Direct access
entry = nStatus[statusKeys[0]] entry = nStatus[statusKeys[0]]
assert entry.colour == QColor(100, 100, 100) assert entry.color == QColor(100, 100, 100)
assert entry.name == "New" assert entry.name == "New"
assert entry.count == 0 assert entry.count == 0
assert isinstance(entry.icon, QIcon) assert isinstance(entry.icon, QIcon)
@@ -118,24 +118,24 @@ def testCoreStatus_Entries(mockRnd):
# ===== # =====
# Have a key # Have a key
nStatus.write(statusKeys[0], "Entry 1", (200, 100, 50), nwStatusShape.SQUARE) nStatus.add(statusKeys[0], "Entry 1", (200, 100, 50), "SQUARE", 0)
assert nStatus[statusKeys[0]].name == "Entry 1" assert nStatus[statusKeys[0]].name == "Entry 1"
assert nStatus[statusKeys[0]].colour == QColor(200, 100, 50) assert nStatus[statusKeys[0]].color == QColor(200, 100, 50)
# Don't have a key # Don't have a key
nStatus.write(None, "Entry 2", (210, 110, 60), nwStatusShape.SQUARE) nStatus.add(None, "Entry 2", (210, 110, 60), "SQUARE", 0)
assert nStatus[statusKeys[1]].name == "Entry 2" assert nStatus[statusKeys[1]].name == "Entry 2"
assert nStatus[statusKeys[1]].colour == QColor(210, 110, 60) assert nStatus[statusKeys[1]].color == QColor(210, 110, 60)
# Wrong colour spec # Wrong colour spec
nStatus.write(None, "Entry 3", "what?", nwStatusShape.SQUARE) # type: ignore nStatus.add(None, "Entry 3", "what?", "SQUARE", 0) # type: ignore
assert nStatus[statusKeys[2]].name == "Entry 3" assert nStatus[statusKeys[2]].name == "Entry 3"
assert nStatus[statusKeys[2]].colour == QColor(100, 100, 100) assert nStatus[statusKeys[2]].color == QColor(100, 100, 100)
# Wrong colour count # Wrong colour count
nStatus.write(None, "Entry 4", (10, 20), nwStatusShape.SQUARE) # type: ignore nStatus.add(None, "Entry 4", (10, 20), "SQUARE", 0) # type: ignore
assert nStatus[statusKeys[3]].name == "Entry 4" assert nStatus[statusKeys[3]].name == "Entry 4"
assert nStatus[statusKeys[3]].colour == QColor(100, 100, 100) assert nStatus[statusKeys[3]].color == QColor(100, 100, 100)
# Check # Check
# ===== # =====
@@ -150,29 +150,29 @@ def testCoreStatus_Entries(mockRnd):
# Name Access # Name Access
# =========== # ===========
assert nStatus.name(statusKeys[0]) == "Entry 1" assert nStatus[statusKeys[0]].name == "Entry 1"
assert nStatus.name(statusKeys[1]) == "Entry 2" assert nStatus[statusKeys[1]].name == "Entry 2"
assert nStatus.name(statusKeys[2]) == "Entry 3" assert nStatus[statusKeys[2]].name == "Entry 3"
assert nStatus.name(statusKeys[3]) == "Entry 4" assert nStatus[statusKeys[3]].name == "Entry 4"
assert nStatus.name("blablabla") == "Entry 1" assert nStatus["blablabla"].name == "Entry 1"
# Colour Access # Colour Access
# ============= # =============
assert nStatus.cols(statusKeys[0]) == QColor(200, 100, 50) assert nStatus[statusKeys[0]].color == QColor(200, 100, 50)
assert nStatus.cols(statusKeys[1]) == QColor(210, 110, 60) assert nStatus[statusKeys[1]].color == QColor(210, 110, 60)
assert nStatus.cols(statusKeys[2]) == QColor(100, 100, 100) assert nStatus[statusKeys[2]].color == QColor(100, 100, 100)
assert nStatus.cols(statusKeys[3]) == QColor(100, 100, 100) assert nStatus[statusKeys[3]].color == QColor(100, 100, 100)
assert nStatus.cols("blablabla") == QColor(200, 100, 50) assert nStatus["blablabla"].color == QColor(200, 100, 50)
# Icon Access # Icon Access
# =========== # ===========
assert isinstance(nStatus.icon(statusKeys[0]), QIcon) assert isinstance(nStatus[statusKeys[0]].icon, QIcon)
assert isinstance(nStatus.icon(statusKeys[1]), QIcon) assert isinstance(nStatus[statusKeys[1]].icon, QIcon)
assert isinstance(nStatus.icon(statusKeys[2]), QIcon) assert isinstance(nStatus[statusKeys[2]].icon, QIcon)
assert isinstance(nStatus.icon(statusKeys[3]), QIcon) assert isinstance(nStatus[statusKeys[3]].icon, QIcon)
assert isinstance(nStatus.icon("blablabla"), QIcon) assert isinstance(nStatus["blablabla"].icon, QIcon)
# Increment and Count Access # Increment and Count Access
# ========================== # ==========================
@@ -182,50 +182,50 @@ def testCoreStatus_Entries(mockRnd):
for _ in range(n): for _ in range(n):
nStatus.increment(statusKeys[i]) nStatus.increment(statusKeys[i])
assert nStatus.count(statusKeys[0]) == countTo[0] assert nStatus[statusKeys[0]].count == countTo[0]
assert nStatus.count(statusKeys[1]) == countTo[1] assert nStatus[statusKeys[1]].count == countTo[1]
assert nStatus.count(statusKeys[2]) == countTo[2] assert nStatus[statusKeys[2]].count == countTo[2]
assert nStatus.count(statusKeys[3]) == countTo[3] assert nStatus[statusKeys[3]].count == countTo[3]
assert nStatus.count("blablabla") == countTo[0] assert nStatus["blablabla"].count == countTo[0]
nStatus.resetCounts() nStatus.resetCounts()
assert nStatus.count(statusKeys[0]) == 0 assert nStatus[statusKeys[0]].count == 0
assert nStatus.count(statusKeys[1]) == 0 assert nStatus[statusKeys[1]].count == 0
assert nStatus.count(statusKeys[2]) == 0 assert nStatus[statusKeys[2]].count == 0
assert nStatus.count(statusKeys[3]) == 0 assert nStatus[statusKeys[3]].count == 0
# Reorder # Reorder
# ======= # =======
cOrder = list(nStatus._store.keys()) # cOrder = list(nStatus._store.keys())
assert cOrder == statusKeys # assert cOrder == statusKeys
# Wrong length # # Wrong length
assert nStatus.reorder([]) is False # assert nStatus.reorder([]) is False
# No change # # No change
assert nStatus.reorder(cOrder) is False # assert nStatus.reorder(cOrder) is False
# Actual re-order # # Actual re-order
nOrder = [ # nOrder = [
statusKeys[0], # statusKeys[0],
statusKeys[2], # statusKeys[2],
statusKeys[1], # statusKeys[1],
statusKeys[3], # statusKeys[3],
] # ]
assert nStatus.reorder(nOrder) is True # assert nStatus.reorder(nOrder) is True
assert list(nStatus._store.keys()) == nOrder # assert list(nStatus._store.keys()) == nOrder
# Add an unknown key # # Add an unknown key
wOrder = nOrder.copy() # wOrder = nOrder.copy()
wOrder[3] = nStatus._newKey() # wOrder[3] = nStatus._newKey()
assert nStatus.reorder(wOrder) is False # assert nStatus.reorder(wOrder) is False
assert list(nStatus._store.keys()) == nOrder # assert list(nStatus._store.keys()) == nOrder
# Put it back # # Put it back
assert nStatus.reorder(cOrder) is True # assert nStatus.reorder(cOrder) is True
assert list(nStatus._store.keys()) == cOrder # assert list(nStatus._store.keys()) == cOrder
# Default # Default
# ======= # =======
@@ -234,43 +234,44 @@ def testCoreStatus_Entries(mockRnd):
nStatus._default = None nStatus._default = None
assert nStatus.check("Entry 5") == "" assert nStatus.check("Entry 5") == ""
assert nStatus.name("blablabla") == "" assert nStatus["blablabla"].name == ""
assert nStatus.cols("blablabla") == QColor(100, 100, 100) assert nStatus["blablabla"].color == QColor(0, 0, 0)
assert nStatus.count("blablabla") == 0 assert nStatus["blablabla"].shape == nwStatusShape.SQUARE
assert isinstance(nStatus.icon("blablabla"), QIcon) assert nStatus["blablabla"].icon.isNull()
assert nStatus["blablabla"].count == 0
nStatus._default = default nStatus._default = default
# Remove # # Remove
# ====== # # ======
# Non-existing entry # # Non-existing entry
assert nStatus.remove("blablabla") is False # assert nStatus.remove("blablabla") is False
# Non-zero entry # # Non-zero entry
nStatus.increment(statusKeys[3]) # nStatus.increment(statusKeys[3])
assert nStatus.remove(statusKeys[3]) is False # assert nStatus.remove(statusKeys[3]) is False
# Delete last entry # # Delete last entry
nStatus.resetCounts() # nStatus.resetCounts()
lastName = nStatus.name(statusKeys[3]) # lastName = nStatus[statusKeys[3]].name
assert lastName == "Entry 4" # assert lastName == "Entry 4"
assert nStatus.remove(statusKeys[3]) is True # assert nStatus.remove(statusKeys[3]) is True
assert nStatus.check(statusKeys[3]) == nStatus._default # assert nStatus.check(statusKeys[3]) == nStatus._default
assert nStatus.check(lastName) == nStatus._default # assert nStatus.check(lastName) == nStatus._default
# Delete default entry, Entry 2 is new default # # Delete default entry, Entry 2 is new default
firstName = nStatus.name(nStatus._default) # firstName = nStatus[nStatus._default].name
assert firstName == "Entry 1" # assert firstName == "Entry 1"
assert nStatus.remove(nStatus._default) is True # type: ignore # assert nStatus.remove(nStatus._default) is True # type: ignore
assert nStatus.name(firstName) == "Entry 2" # assert nStatus[firstName].name == "Entry 2"
# Remove remaining entries # # Remove remaining entries
assert nStatus.remove(statusKeys[1]) is True # assert nStatus.remove(statusKeys[1]) is True
assert nStatus.remove(statusKeys[2]) is True # assert nStatus.remove(statusKeys[2]) is True
assert len(nStatus) == 0 # assert len(nStatus) == 0
assert nStatus._default is None # assert nStatus._default is None
# END Test testCoreStatus_Entries # END Test testCoreStatus_Entries
@@ -279,10 +280,10 @@ def testCoreStatus_Entries(mockRnd):
def testCoreStatus_PackUnpack(mockRnd): def testCoreStatus_PackUnpack(mockRnd):
"""Test all the pack/unpack of the NWStatus class.""" """Test all the pack/unpack of the NWStatus class."""
nStatus = NWStatus(NWStatus.STATUS) nStatus = NWStatus(NWStatus.STATUS)
nStatus.write(None, "New", (100, 100, 100), nwStatusShape.SQUARE) nStatus.add(None, "New", (100, 100, 100), "SQUARE", 0)
nStatus.write(None, "Note", (200, 50, 0), nwStatusShape.SQUARE) nStatus.add(None, "Note", (200, 50, 0), "SQUARE", 0)
nStatus.write(None, "Draft", (200, 150, 0), nwStatusShape.SQUARE) nStatus.add(None, "Draft", (200, 150, 0), "SQUARE", 0)
nStatus.write(None, "Finished", (50, 200, 0), nwStatusShape.SQUARE) nStatus.add(None, "Finished", (50, 200, 0), "SQUARE", 0)
countTo = [3, 5, 7, 9] countTo = [3, 5, 7, 9]
for i, n in enumerate(countTo): for i, n in enumerate(countTo):