Add more check functions
This commit is contained in:
+34
-4
@@ -30,7 +30,9 @@ from datetime import datetime
|
|||||||
|
|
||||||
from PyQt5.QtWidgets import qApp
|
from PyQt5.QtWidgets import qApp
|
||||||
|
|
||||||
from nw.constants import nwConst, nwUnicode
|
from nw.constants import (
|
||||||
|
nwConst, nwUnicode, nwItemClass, nwItemType, nwItemLayout
|
||||||
|
)
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@@ -103,11 +105,39 @@ def isHandle(theString):
|
|||||||
return False
|
return False
|
||||||
if len(theString) != 13:
|
if len(theString) != 13:
|
||||||
return False
|
return False
|
||||||
invalidChar = False
|
|
||||||
for c in theString:
|
for c in theString:
|
||||||
if c not in "0123456789abcdef":
|
if c not in "0123456789abcdef":
|
||||||
invalidChar = True
|
return False
|
||||||
return not invalidChar
|
return True
|
||||||
|
|
||||||
|
def isTitleTag(theString):
|
||||||
|
"""Check if a string is a valid title string.
|
||||||
|
"""
|
||||||
|
if not isinstance(theString, str):
|
||||||
|
return False
|
||||||
|
if len(theString) != 7:
|
||||||
|
return False
|
||||||
|
if not theString.startswith("T"):
|
||||||
|
return False
|
||||||
|
for c in theString[1:]:
|
||||||
|
if c not in "0123456789":
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def isItemClass(theString):
|
||||||
|
"""Check if an item is a calid nwItemClass identifier.
|
||||||
|
"""
|
||||||
|
return theString in nwItemClass.__members__
|
||||||
|
|
||||||
|
def isItemType(theString):
|
||||||
|
"""Check if an item is a calid nwItemType identifier.
|
||||||
|
"""
|
||||||
|
return theString in nwItemType.__members__
|
||||||
|
|
||||||
|
def isItemLayout(theString):
|
||||||
|
"""Check if an item is a calid nwItemLayout identifier.
|
||||||
|
"""
|
||||||
|
return theString in nwItemLayout.__members__
|
||||||
|
|
||||||
def hexToInt(value, default=0):
|
def hexToInt(value, default=0):
|
||||||
"""Convert a hex string to an integer.
|
"""Convert a hex string to an integer.
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ import pytest
|
|||||||
from nw.common import (
|
from nw.common import (
|
||||||
checkString, checkBool, checkInt, colRange, formatInt, transferCase,
|
checkString, checkBool, checkInt, colRange, formatInt, transferCase,
|
||||||
fuzzyTime, checkHandle, formatTimeStamp, formatTime, hexToInt,
|
fuzzyTime, checkHandle, formatTimeStamp, formatTime, hexToInt,
|
||||||
makeFileNameSafe
|
makeFileNameSafe, isHandle, isTitleTag, isItemClass, isItemType,
|
||||||
|
isItemLayout
|
||||||
)
|
)
|
||||||
from tools import cmpList
|
from tools import cmpList
|
||||||
|
|
||||||
@@ -88,6 +89,95 @@ def testBaseCommon_CheckHandle():
|
|||||||
|
|
||||||
# END Test testBaseCommon_CheckHandle
|
# END Test testBaseCommon_CheckHandle
|
||||||
|
|
||||||
|
@pytest.mark.base
|
||||||
|
def testBaseCommon_IsHandle():
|
||||||
|
"""Test the isHandle function.
|
||||||
|
"""
|
||||||
|
assert isHandle("47666c91c7ccf")
|
||||||
|
|
||||||
|
assert not isHandle("47666C91C7CCF")
|
||||||
|
assert not isHandle("h7666c91c7ccf")
|
||||||
|
assert not isHandle("None")
|
||||||
|
assert not isHandle(None)
|
||||||
|
assert not isHandle("STUFF")
|
||||||
|
|
||||||
|
# END Test testBaseCommon_IsHandle
|
||||||
|
|
||||||
|
@pytest.mark.base
|
||||||
|
def testBaseCommon_IsTitleTag():
|
||||||
|
"""Test the isItemClass function.
|
||||||
|
"""
|
||||||
|
assert isTitleTag("T123456")
|
||||||
|
|
||||||
|
assert not isTitleTag("t123456")
|
||||||
|
assert not isTitleTag("S123456")
|
||||||
|
assert not isTitleTag("T12345A")
|
||||||
|
assert not isTitleTag("T1234567")
|
||||||
|
|
||||||
|
assert not isTitleTag("None")
|
||||||
|
assert not isTitleTag(None)
|
||||||
|
assert not isTitleTag("STUFF")
|
||||||
|
|
||||||
|
# END Test testBaseCommon_IsTitleTag
|
||||||
|
|
||||||
|
@pytest.mark.base
|
||||||
|
def testBaseCommon_IsItemClass():
|
||||||
|
"""Test the isItemClass function.
|
||||||
|
"""
|
||||||
|
assert isItemClass("NO_CLASS")
|
||||||
|
assert isItemClass("NOVEL")
|
||||||
|
assert isItemClass("PLOT")
|
||||||
|
assert isItemClass("CHARACTER")
|
||||||
|
assert isItemClass("WORLD")
|
||||||
|
assert isItemClass("TIMELINE")
|
||||||
|
assert isItemClass("OBJECT")
|
||||||
|
assert isItemClass("ENTITY")
|
||||||
|
assert isItemClass("CUSTOM")
|
||||||
|
assert isItemClass("ARCHIVE")
|
||||||
|
assert isItemClass("TRASH")
|
||||||
|
|
||||||
|
assert not isItemClass("None")
|
||||||
|
assert not isItemClass(None)
|
||||||
|
assert not isItemClass("STUFF")
|
||||||
|
|
||||||
|
# END Test testBaseCommon_IsItemClass
|
||||||
|
|
||||||
|
@pytest.mark.base
|
||||||
|
def testBaseCommon_IsItemType():
|
||||||
|
"""Test the isItemType function.
|
||||||
|
"""
|
||||||
|
assert isItemType("NO_TYPE")
|
||||||
|
assert isItemType("ROOT")
|
||||||
|
assert isItemType("FOLDER")
|
||||||
|
assert isItemType("FILE")
|
||||||
|
assert isItemType("TRASH")
|
||||||
|
|
||||||
|
assert not isItemType("None")
|
||||||
|
assert not isItemType(None)
|
||||||
|
assert not isItemType("STUFF")
|
||||||
|
|
||||||
|
# END Test testBaseCommon_IsItemType
|
||||||
|
|
||||||
|
@pytest.mark.base
|
||||||
|
def testBaseCommon_IsItemLayout():
|
||||||
|
"""Test the isItemLayout function.
|
||||||
|
"""
|
||||||
|
assert isItemLayout("NO_LAYOUT")
|
||||||
|
assert isItemLayout("TITLE")
|
||||||
|
assert isItemLayout("BOOK")
|
||||||
|
assert isItemLayout("PAGE")
|
||||||
|
assert isItemLayout("PARTITION")
|
||||||
|
assert isItemLayout("UNNUMBERED")
|
||||||
|
assert isItemLayout("CHAPTER")
|
||||||
|
assert isItemLayout("SCENE")
|
||||||
|
assert isItemLayout("NOTE")
|
||||||
|
|
||||||
|
assert not isItemLayout("None")
|
||||||
|
assert not isItemLayout(None)
|
||||||
|
assert not isItemLayout("STUFF")
|
||||||
|
|
||||||
|
# END Test testBaseCommon_IsItemLayout
|
||||||
|
|
||||||
@pytest.mark.base
|
@pytest.mark.base
|
||||||
def testBaseCommon_HexToInt():
|
def testBaseCommon_HexToInt():
|
||||||
"""Test the hexToInt function.
|
"""Test the hexToInt function.
|
||||||
|
|||||||
Reference in New Issue
Block a user