New test for NWStatus class
This commit is contained in:
+4
-12
@@ -79,6 +79,7 @@ class NWStatus():
|
|||||||
theStatus = checkInt(theStatus, 0, False)
|
theStatus = checkInt(theStatus, 0, False)
|
||||||
if theStatus >= 0 and theStatus < self._theLength:
|
if theStatus >= 0 and theStatus < self._theLength:
|
||||||
return self._theLabels[theStatus]
|
return self._theLabels[theStatus]
|
||||||
|
return self._theLabels[0]
|
||||||
|
|
||||||
def setNewEntries(self, newList):
|
def setNewEntries(self, newList):
|
||||||
"""Update the list of entries after they have been modified by
|
"""Update the list of entries after they have been modified by
|
||||||
@@ -136,18 +137,9 @@ class NWStatus():
|
|||||||
|
|
||||||
for xChild in xParent:
|
for xChild in xParent:
|
||||||
theLabels.append(xChild.text)
|
theLabels.append(xChild.text)
|
||||||
if "red" in xChild.attrib:
|
cR = checkInt(xChild.attrib.get("red", 0), 0, False)
|
||||||
cR = checkInt(xChild.attrib["red"], 0, False)
|
cG = checkInt(xChild.attrib.get("green", 0), 0, False)
|
||||||
else:
|
cB = checkInt(xChild.attrib.get("blue", 0), 0, False)
|
||||||
cR = 0
|
|
||||||
if "green" in xChild.attrib:
|
|
||||||
cG = checkInt(xChild.attrib["green"], 0, False)
|
|
||||||
else:
|
|
||||||
cG = 0
|
|
||||||
if "blue" in xChild.attrib:
|
|
||||||
cB = checkInt(xChild.attrib["blue"], 0, False)
|
|
||||||
else:
|
|
||||||
cB = 0
|
|
||||||
theColours.append((cR, cG, cB))
|
theColours.append((cR, cG, cB))
|
||||||
|
|
||||||
if len(theLabels) > 0:
|
if len(theLabels) > 0:
|
||||||
|
|||||||
@@ -66,5 +66,6 @@ The commands for the respective test categories are listed below.
|
|||||||
| 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 | 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 | 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` |
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from difflib import get_close_matches
|
|
||||||
|
|
||||||
from dummy import causeOSError
|
from dummy import causeOSError
|
||||||
from tools import readFile, writeFile
|
from tools import readFile, writeFile
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,126 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""novelWriter Status Class Tester
|
||||||
|
"""
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from lxml import etree
|
||||||
|
|
||||||
|
from nw.core.status import NWStatus
|
||||||
|
|
||||||
|
@pytest.mark.core
|
||||||
|
def testCoreStatus_Entries():
|
||||||
|
"""Test all the simple setters for the NWItem class.
|
||||||
|
"""
|
||||||
|
theStatus = NWStatus()
|
||||||
|
|
||||||
|
# Add entries
|
||||||
|
theStatus.addEntry("New", (100, 100, 100))
|
||||||
|
theStatus.addEntry("Minor", (200, 50, 0))
|
||||||
|
theStatus.addEntry("Major", (200, 150, 0))
|
||||||
|
theStatus.addEntry("Main", (50, 200, 0))
|
||||||
|
|
||||||
|
assert theStatus._theLabels == ["New", "Minor", "Major", "Main"]
|
||||||
|
assert theStatus._theColours == [(100, 100, 100), (200, 50, 0), (200, 150, 0), (50, 200, 0)]
|
||||||
|
assert theStatus._theCounts == [0, 0, 0, 0]
|
||||||
|
assert theStatus._theMap["New"] == 0
|
||||||
|
assert theStatus._theMap["Minor"] == 1
|
||||||
|
assert theStatus._theMap["Major"] == 2
|
||||||
|
assert theStatus._theMap["Main"] == 3
|
||||||
|
assert theStatus._theLength == 4
|
||||||
|
|
||||||
|
# Lookups
|
||||||
|
assert theStatus.lookupEntry(None) is None
|
||||||
|
assert theStatus.lookupEntry("dummy") is None
|
||||||
|
assert theStatus.lookupEntry("Main") == 3
|
||||||
|
|
||||||
|
# Checks
|
||||||
|
assert theStatus.checkEntry(123) == "New"
|
||||||
|
assert theStatus.checkEntry("Stuff") == "New"
|
||||||
|
assert theStatus.checkEntry("New ") == "New"
|
||||||
|
assert theStatus.checkEntry(" Main ") == "Main"
|
||||||
|
|
||||||
|
# Set new list
|
||||||
|
newList = [
|
||||||
|
("New", 1, 1, 1, "New"),
|
||||||
|
("Minor", 2, 2, 2, "Minor"),
|
||||||
|
("Major", 3, 3, 3, "Major"),
|
||||||
|
("Min", 4, 4, 4, "Main"),
|
||||||
|
("Max", 5, 5, 5, None),
|
||||||
|
]
|
||||||
|
assert theStatus.setNewEntries(None) == {}
|
||||||
|
assert theStatus.setNewEntries(newList) == {"Main": "Min"}
|
||||||
|
|
||||||
|
assert theStatus._theLabels == ["New", "Minor", "Major", "Min", "Max"]
|
||||||
|
assert theStatus._theColours == [(1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4), (5, 5, 5)]
|
||||||
|
assert theStatus._theCounts == [0, 0, 0, 0, 0]
|
||||||
|
assert theStatus._theMap["New"] == 0
|
||||||
|
assert theStatus._theMap["Minor"] == 1
|
||||||
|
assert theStatus._theMap["Major"] == 2
|
||||||
|
assert theStatus._theMap["Min"] == 3
|
||||||
|
assert theStatus._theMap["Max"] == 4
|
||||||
|
assert theStatus._theLength == 5
|
||||||
|
|
||||||
|
# Add counts
|
||||||
|
countTo = [3, 5, 7, 9, 11]
|
||||||
|
for i, n in enumerate(countTo):
|
||||||
|
for _ in range(n):
|
||||||
|
theStatus.countEntry(theStatus._theLabels[i])
|
||||||
|
assert theStatus._theCounts == countTo
|
||||||
|
|
||||||
|
# Iterate
|
||||||
|
for i, (sA, sB, sC) in enumerate(theStatus):
|
||||||
|
assert sA == theStatus._theLabels[i]
|
||||||
|
assert sB == theStatus._theColours[i]
|
||||||
|
assert sC == theStatus._theCounts[i]
|
||||||
|
|
||||||
|
assert theStatus[9] == (None, None, None)
|
||||||
|
|
||||||
|
# Clear counts
|
||||||
|
theStatus.resetCounts()
|
||||||
|
assert theStatus._theCounts == [0, 0, 0, 0, 0]
|
||||||
|
|
||||||
|
# END Test testCoreStatus_Entries
|
||||||
|
|
||||||
|
@pytest.mark.core
|
||||||
|
def testCoreStatus_XMLPackUnpack():
|
||||||
|
"""Test all the simple setters for the NWItem class.
|
||||||
|
"""
|
||||||
|
theStatus = NWStatus()
|
||||||
|
theStatus.addEntry("New", (100, 100, 100))
|
||||||
|
theStatus.addEntry("Minor", (200, 50, 0))
|
||||||
|
theStatus.addEntry("Major", (200, 150, 0))
|
||||||
|
theStatus.addEntry("Main", (50, 200, 0))
|
||||||
|
|
||||||
|
countTo = [3, 5, 7, 9]
|
||||||
|
for i, n in enumerate(countTo):
|
||||||
|
for _ in range(n):
|
||||||
|
theStatus.countEntry(theStatus._theLabels[i])
|
||||||
|
|
||||||
|
nwXML = etree.Element("novelWriterXML")
|
||||||
|
|
||||||
|
# Pack
|
||||||
|
xStatus = etree.SubElement(nwXML, "status")
|
||||||
|
theStatus.packXML(xStatus)
|
||||||
|
assert etree.tostring(xStatus, pretty_print=False, encoding="utf-8") == (
|
||||||
|
b"<status>"
|
||||||
|
b"<entry blue=\"100\" green=\"100\" red=\"100\">New</entry>"
|
||||||
|
b"<entry blue=\"0\" green=\"50\" red=\"200\">Minor</entry>"
|
||||||
|
b"<entry blue=\"0\" green=\"150\" red=\"200\">Major</entry>"
|
||||||
|
b"<entry blue=\"0\" green=\"200\" red=\"50\">Main</entry>"
|
||||||
|
b"</status>"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Unpack
|
||||||
|
theStatus = NWStatus()
|
||||||
|
assert theStatus.unpackXML(xStatus)
|
||||||
|
assert theStatus._theLabels == ["New", "Minor", "Major", "Main"]
|
||||||
|
assert theStatus._theColours == [(100, 100, 100), (200, 50, 0), (200, 150, 0), (50, 200, 0)]
|
||||||
|
assert theStatus._theCounts == [0, 0, 0, 0]
|
||||||
|
assert theStatus._theMap["New"] == 0
|
||||||
|
assert theStatus._theMap["Minor"] == 1
|
||||||
|
assert theStatus._theMap["Major"] == 2
|
||||||
|
assert theStatus._theMap["Main"] == 3
|
||||||
|
assert theStatus._theLength == 4
|
||||||
|
|
||||||
|
# END Test testCoreStatus_XMLPackUnpack
|
||||||
@@ -11,8 +11,7 @@ from zipfile import ZipFile
|
|||||||
from tools import cmpFiles
|
from tools import cmpFiles
|
||||||
|
|
||||||
from nw.core.project import NWProject
|
from nw.core.project import NWProject
|
||||||
from nw.core.spellcheck import NWSpellEnchant, NWSpellSimple
|
from nw.constants import nwItemClass, nwItemType, nwItemLayout, nwFiles
|
||||||
from nw.constants import nwConst, nwItemClass, nwItemType, nwItemLayout, nwFiles
|
|
||||||
|
|
||||||
@pytest.mark.project
|
@pytest.mark.project
|
||||||
def testProjectNewOpenSave(nwFuncTemp, nwTempProj, refDir, tmpDir, dummyGUI):
|
def testProjectNewOpenSave(nwFuncTemp, nwTempProj, refDir, tmpDir, dummyGUI):
|
||||||
|
|||||||
Reference in New Issue
Block a user