Make index dictionaries internal
This commit is contained in:
+102
-102
@@ -56,30 +56,30 @@ def testCoreIndex_LoadSave(monkeypatch, nwLipsum, dummyGUI, outDir, refDir):
|
||||
assert theIndex.saveIndex()
|
||||
|
||||
# Take a copy of the index
|
||||
tagIndex = str(theIndex.tagIndex)
|
||||
refIndex = str(theIndex.refIndex)
|
||||
novelIndex = str(theIndex.novelIndex)
|
||||
noteIndex = str(theIndex.noteIndex)
|
||||
textCounts = str(theIndex.textCounts)
|
||||
tagIndex = str(theIndex._tagIndex)
|
||||
refIndex = str(theIndex._refIndex)
|
||||
novelIndex = str(theIndex._novelIndex)
|
||||
noteIndex = str(theIndex._noteIndex)
|
||||
textCounts = str(theIndex._textCounts)
|
||||
|
||||
# Delete a handle
|
||||
assert theIndex.tagIndex.get("Bod", None) is not None
|
||||
assert theIndex.refIndex.get("4c4f28287af27", None) is not None
|
||||
assert theIndex.noteIndex.get("4c4f28287af27", None) is not None
|
||||
assert theIndex.textCounts.get("4c4f28287af27", None) is not None
|
||||
assert theIndex._tagIndex.get("Bod", None) is not None
|
||||
assert theIndex._refIndex.get("4c4f28287af27", None) is not None
|
||||
assert theIndex._noteIndex.get("4c4f28287af27", None) is not None
|
||||
assert theIndex._textCounts.get("4c4f28287af27", None) is not None
|
||||
theIndex.deleteHandle("4c4f28287af27")
|
||||
assert theIndex.tagIndex.get("Bod", None) is None
|
||||
assert theIndex.refIndex.get("4c4f28287af27", None) is None
|
||||
assert theIndex.noteIndex.get("4c4f28287af27", None) is None
|
||||
assert theIndex.textCounts.get("4c4f28287af27", None) is None
|
||||
assert theIndex._tagIndex.get("Bod", None) is None
|
||||
assert theIndex._refIndex.get("4c4f28287af27", None) is None
|
||||
assert theIndex._noteIndex.get("4c4f28287af27", None) is None
|
||||
assert theIndex._textCounts.get("4c4f28287af27", None) is None
|
||||
|
||||
# Clear the index
|
||||
theIndex.clearIndex()
|
||||
assert not theIndex.tagIndex
|
||||
assert not theIndex.refIndex
|
||||
assert not theIndex.novelIndex
|
||||
assert not theIndex.noteIndex
|
||||
assert not theIndex.textCounts
|
||||
assert not theIndex._tagIndex
|
||||
assert not theIndex._refIndex
|
||||
assert not theIndex._novelIndex
|
||||
assert not theIndex._noteIndex
|
||||
assert not theIndex._textCounts
|
||||
|
||||
# Make the load fail
|
||||
monkeypatch.setattr(json, "load", doPanic)
|
||||
@@ -89,46 +89,46 @@ def testCoreIndex_LoadSave(monkeypatch, nwLipsum, dummyGUI, outDir, refDir):
|
||||
monkeypatch.undo()
|
||||
assert theIndex.loadIndex()
|
||||
|
||||
assert str(theIndex.tagIndex) == tagIndex
|
||||
assert str(theIndex.refIndex) == refIndex
|
||||
assert str(theIndex.novelIndex) == novelIndex
|
||||
assert str(theIndex.noteIndex) == noteIndex
|
||||
assert str(theIndex.textCounts) == textCounts
|
||||
assert str(theIndex._tagIndex) == tagIndex
|
||||
assert str(theIndex._refIndex) == refIndex
|
||||
assert str(theIndex._novelIndex) == novelIndex
|
||||
assert str(theIndex._noteIndex) == noteIndex
|
||||
assert str(theIndex._textCounts) == textCounts
|
||||
|
||||
# Break the index and check that we notice
|
||||
assert not theIndex.indexBroken
|
||||
theIndex.tagIndex["Bod"].append("Stuff") # No longer len() == 4
|
||||
theIndex._tagIndex["Bod"].append("Stuff") # No longer len() == 4
|
||||
theIndex.checkIndex()
|
||||
assert theIndex.indexBroken
|
||||
|
||||
assert theIndex.loadIndex()
|
||||
assert not theIndex.indexBroken
|
||||
theIndex.refIndex["fb609cd8319dc"]["T000001"]["tags"].append("Stuff") # No longer len() == 3
|
||||
theIndex._refIndex["fb609cd8319dc"]["T000001"]["tags"].append("Stuff") # No longer len() == 3
|
||||
theIndex.checkIndex()
|
||||
assert theIndex.indexBroken
|
||||
|
||||
assert theIndex.loadIndex()
|
||||
assert not theIndex.indexBroken
|
||||
theIndex.novelIndex["7a992350f3eb6"]["T000001"]["Stuff"] = "" # No longer len(keys()) == 8
|
||||
theIndex._novelIndex["7a992350f3eb6"]["T000001"]["Stuff"] = "" # No longer len(keys()) == 8
|
||||
theIndex.checkIndex()
|
||||
assert theIndex.indexBroken
|
||||
|
||||
assert theIndex.loadIndex()
|
||||
assert not theIndex.indexBroken
|
||||
theIndex.noteIndex["4c4f28287af27"]["T000001"]["Stuff"] = "" # No longer len(keys()) == 8
|
||||
theIndex._noteIndex["4c4f28287af27"]["T000001"]["Stuff"] = "" # No longer len(keys()) == 8
|
||||
theIndex.checkIndex()
|
||||
assert theIndex.indexBroken
|
||||
|
||||
assert theIndex.loadIndex()
|
||||
assert not theIndex.indexBroken
|
||||
theIndex.textCounts["7a992350f3eb6"].append("Stuff") # No longer len() == 3
|
||||
theIndex._textCounts["7a992350f3eb6"].append("Stuff") # No longer len() == 3
|
||||
theIndex.checkIndex()
|
||||
assert theIndex.indexBroken
|
||||
|
||||
# Make the try/except trigger as well
|
||||
assert theIndex.loadIndex()
|
||||
assert not theIndex.indexBroken
|
||||
theIndex.refIndex["fb609cd8319dc"]["T000001"] = {"tagssss": []} # Wrong key name
|
||||
theIndex._refIndex["fb609cd8319dc"]["T000001"] = {"tagssss": []} # Wrong key name
|
||||
theIndex.checkIndex()
|
||||
assert theIndex.indexBroken
|
||||
|
||||
@@ -217,7 +217,7 @@ def testCoreIndex_CheckThese(nwMinimal, dummyGUI):
|
||||
"# Hello World!\n"
|
||||
"@pov: Jane"
|
||||
))
|
||||
assert theIndex.tagIndex == {"Jane": [2, cHandle, "CHARACTER", "T000001"]}
|
||||
assert theIndex._tagIndex == {"Jane": [2, cHandle, "CHARACTER", "T000001"]}
|
||||
assert theIndex.getNovelData(nHandle, "T000001")["title"] == "Hello World!"
|
||||
|
||||
assert theIndex.novelChangedSince(0)
|
||||
@@ -293,7 +293,7 @@ def testCoreIndex_ScanText(nwMinimal, dummyGUI):
|
||||
"This is a story about Jane Smith.\n\n"
|
||||
"Well, not really.\n"
|
||||
))
|
||||
assert str(theIndex.tagIndex) == "{'Jane': [2, '%s', 'CHARACTER', 'T000001']}" % cHandle
|
||||
assert str(theIndex._tagIndex) == "{'Jane': [2, '%s', 'CHARACTER', 'T000001']}" % cHandle
|
||||
assert theIndex.getNovelData(nHandle, "T000001")["title"] == "Hello World!"
|
||||
|
||||
# Check that title sections are indexed properly
|
||||
@@ -313,68 +313,68 @@ def testCoreIndex_ScanText(nwMinimal, dummyGUI):
|
||||
"##### Title Five\n\n" # Not interpreted as a title, the hashes is counted as a word
|
||||
"Paragraph Five.\n\n"
|
||||
))
|
||||
assert theIndex.refIndex[nHandle].get("T000000", None) is not None # Always there
|
||||
assert theIndex.refIndex[nHandle].get("T000001", None) is not None # Heading 1
|
||||
assert theIndex.refIndex[nHandle].get("T000002", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000003", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000004", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000005", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000006", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000007", None) is not None # Heading 2
|
||||
assert theIndex.refIndex[nHandle].get("T000008", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000009", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000010", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000011", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000012", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000013", None) is not None # Heading 3
|
||||
assert theIndex.refIndex[nHandle].get("T000014", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000015", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000016", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000017", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000018", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000019", None) is not None # Heading 4
|
||||
assert theIndex.refIndex[nHandle].get("T000020", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000021", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000022", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000023", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000024", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000025", None) is None
|
||||
assert theIndex.refIndex[nHandle].get("T000026", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000000", None) is not None # Always there
|
||||
assert theIndex._refIndex[nHandle].get("T000001", None) is not None # Heading 1
|
||||
assert theIndex._refIndex[nHandle].get("T000002", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000003", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000004", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000005", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000006", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000007", None) is not None # Heading 2
|
||||
assert theIndex._refIndex[nHandle].get("T000008", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000009", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000010", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000011", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000012", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000013", None) is not None # Heading 3
|
||||
assert theIndex._refIndex[nHandle].get("T000014", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000015", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000016", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000017", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000018", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000019", None) is not None # Heading 4
|
||||
assert theIndex._refIndex[nHandle].get("T000020", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000021", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000022", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000023", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000024", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000025", None) is None
|
||||
assert theIndex._refIndex[nHandle].get("T000026", None) is None
|
||||
|
||||
assert theIndex.novelIndex[nHandle]["T000001"]["level"] == "H1"
|
||||
assert theIndex.novelIndex[nHandle]["T000007"]["level"] == "H2"
|
||||
assert theIndex.novelIndex[nHandle]["T000013"]["level"] == "H3"
|
||||
assert theIndex.novelIndex[nHandle]["T000019"]["level"] == "H4"
|
||||
assert theIndex._novelIndex[nHandle]["T000001"]["level"] == "H1"
|
||||
assert theIndex._novelIndex[nHandle]["T000007"]["level"] == "H2"
|
||||
assert theIndex._novelIndex[nHandle]["T000013"]["level"] == "H3"
|
||||
assert theIndex._novelIndex[nHandle]["T000019"]["level"] == "H4"
|
||||
|
||||
assert theIndex.novelIndex[nHandle]["T000001"]["title"] == "Title One"
|
||||
assert theIndex.novelIndex[nHandle]["T000007"]["title"] == "Title Two"
|
||||
assert theIndex.novelIndex[nHandle]["T000013"]["title"] == "Title Three"
|
||||
assert theIndex.novelIndex[nHandle]["T000019"]["title"] == "Title Four"
|
||||
assert theIndex._novelIndex[nHandle]["T000001"]["title"] == "Title One"
|
||||
assert theIndex._novelIndex[nHandle]["T000007"]["title"] == "Title Two"
|
||||
assert theIndex._novelIndex[nHandle]["T000013"]["title"] == "Title Three"
|
||||
assert theIndex._novelIndex[nHandle]["T000019"]["title"] == "Title Four"
|
||||
|
||||
assert theIndex.novelIndex[nHandle]["T000001"]["layout"] == "SCENE"
|
||||
assert theIndex.novelIndex[nHandle]["T000007"]["layout"] == "SCENE"
|
||||
assert theIndex.novelIndex[nHandle]["T000013"]["layout"] == "SCENE"
|
||||
assert theIndex.novelIndex[nHandle]["T000019"]["layout"] == "SCENE"
|
||||
assert theIndex._novelIndex[nHandle]["T000001"]["layout"] == "SCENE"
|
||||
assert theIndex._novelIndex[nHandle]["T000007"]["layout"] == "SCENE"
|
||||
assert theIndex._novelIndex[nHandle]["T000013"]["layout"] == "SCENE"
|
||||
assert theIndex._novelIndex[nHandle]["T000019"]["layout"] == "SCENE"
|
||||
|
||||
assert theIndex.novelIndex[nHandle]["T000001"]["synopsis"] == "Synopsis One."
|
||||
assert theIndex.novelIndex[nHandle]["T000007"]["synopsis"] == "Synopsis Two."
|
||||
assert theIndex.novelIndex[nHandle]["T000013"]["synopsis"] == "Synopsis Three."
|
||||
assert theIndex.novelIndex[nHandle]["T000019"]["synopsis"] == "Synopsis Four."
|
||||
assert theIndex._novelIndex[nHandle]["T000001"]["synopsis"] == "Synopsis One."
|
||||
assert theIndex._novelIndex[nHandle]["T000007"]["synopsis"] == "Synopsis Two."
|
||||
assert theIndex._novelIndex[nHandle]["T000013"]["synopsis"] == "Synopsis Three."
|
||||
assert theIndex._novelIndex[nHandle]["T000019"]["synopsis"] == "Synopsis Four."
|
||||
|
||||
assert theIndex.novelIndex[nHandle]["T000001"]["cCount"] == 23
|
||||
assert theIndex.novelIndex[nHandle]["T000007"]["cCount"] == 23
|
||||
assert theIndex.novelIndex[nHandle]["T000013"]["cCount"] == 27
|
||||
assert theIndex.novelIndex[nHandle]["T000019"]["cCount"] == 56
|
||||
assert theIndex._novelIndex[nHandle]["T000001"]["cCount"] == 23
|
||||
assert theIndex._novelIndex[nHandle]["T000007"]["cCount"] == 23
|
||||
assert theIndex._novelIndex[nHandle]["T000013"]["cCount"] == 27
|
||||
assert theIndex._novelIndex[nHandle]["T000019"]["cCount"] == 56
|
||||
|
||||
assert theIndex.novelIndex[nHandle]["T000001"]["wCount"] == 4
|
||||
assert theIndex.novelIndex[nHandle]["T000007"]["wCount"] == 4
|
||||
assert theIndex.novelIndex[nHandle]["T000013"]["wCount"] == 4
|
||||
assert theIndex.novelIndex[nHandle]["T000019"]["wCount"] == 9
|
||||
assert theIndex._novelIndex[nHandle]["T000001"]["wCount"] == 4
|
||||
assert theIndex._novelIndex[nHandle]["T000007"]["wCount"] == 4
|
||||
assert theIndex._novelIndex[nHandle]["T000013"]["wCount"] == 4
|
||||
assert theIndex._novelIndex[nHandle]["T000019"]["wCount"] == 9
|
||||
|
||||
assert theIndex.novelIndex[nHandle]["T000001"]["pCount"] == 1
|
||||
assert theIndex.novelIndex[nHandle]["T000007"]["pCount"] == 1
|
||||
assert theIndex.novelIndex[nHandle]["T000013"]["pCount"] == 1
|
||||
assert theIndex.novelIndex[nHandle]["T000019"]["pCount"] == 3
|
||||
assert theIndex._novelIndex[nHandle]["T000001"]["pCount"] == 1
|
||||
assert theIndex._novelIndex[nHandle]["T000007"]["pCount"] == 1
|
||||
assert theIndex._novelIndex[nHandle]["T000013"]["pCount"] == 1
|
||||
assert theIndex._novelIndex[nHandle]["T000019"]["pCount"] == 3
|
||||
|
||||
assert theIndex.scanText(cHandle, (
|
||||
"# Title One\n\n"
|
||||
@@ -382,22 +382,22 @@ def testCoreIndex_ScanText(nwMinimal, dummyGUI):
|
||||
"% synopsis: Synopsis One.\n\n"
|
||||
"Paragraph One.\n\n"
|
||||
))
|
||||
assert theIndex.refIndex[cHandle].get("T000000", None) is not None
|
||||
assert theIndex.refIndex[cHandle].get("T000001", None) is not None
|
||||
assert theIndex.refIndex[cHandle].get("T000002", None) is None
|
||||
assert theIndex.refIndex[cHandle].get("T000003", None) is None
|
||||
assert theIndex.refIndex[cHandle].get("T000004", None) is None
|
||||
assert theIndex.refIndex[cHandle].get("T000005", None) is None
|
||||
assert theIndex.refIndex[cHandle].get("T000006", None) is None
|
||||
assert theIndex.refIndex[cHandle].get("T000007", None) is None
|
||||
assert theIndex._refIndex[cHandle].get("T000000", None) is not None
|
||||
assert theIndex._refIndex[cHandle].get("T000001", None) is not None
|
||||
assert theIndex._refIndex[cHandle].get("T000002", None) is None
|
||||
assert theIndex._refIndex[cHandle].get("T000003", None) is None
|
||||
assert theIndex._refIndex[cHandle].get("T000004", None) is None
|
||||
assert theIndex._refIndex[cHandle].get("T000005", None) is None
|
||||
assert theIndex._refIndex[cHandle].get("T000006", None) is None
|
||||
assert theIndex._refIndex[cHandle].get("T000007", None) is None
|
||||
|
||||
assert theIndex.noteIndex[cHandle]["T000001"]["level"] == "H1"
|
||||
assert theIndex.noteIndex[cHandle]["T000001"]["title"] == "Title One"
|
||||
assert theIndex.noteIndex[cHandle]["T000001"]["layout"] == "NOTE"
|
||||
assert theIndex.noteIndex[cHandle]["T000001"]["synopsis"] == "Synopsis One."
|
||||
assert theIndex.noteIndex[cHandle]["T000001"]["cCount"] == 23
|
||||
assert theIndex.noteIndex[cHandle]["T000001"]["wCount"] == 4
|
||||
assert theIndex.noteIndex[cHandle]["T000001"]["pCount"] == 1
|
||||
assert theIndex._noteIndex[cHandle]["T000001"]["level"] == "H1"
|
||||
assert theIndex._noteIndex[cHandle]["T000001"]["title"] == "Title One"
|
||||
assert theIndex._noteIndex[cHandle]["T000001"]["layout"] == "NOTE"
|
||||
assert theIndex._noteIndex[cHandle]["T000001"]["synopsis"] == "Synopsis One."
|
||||
assert theIndex._noteIndex[cHandle]["T000001"]["cCount"] == 23
|
||||
assert theIndex._noteIndex[cHandle]["T000001"]["wCount"] == 4
|
||||
assert theIndex._noteIndex[cHandle]["T000001"]["pCount"] == 1
|
||||
|
||||
assert theIndex.scanText(sHandle, (
|
||||
"# Title One\n\n"
|
||||
@@ -407,7 +407,7 @@ def testCoreIndex_ScanText(nwMinimal, dummyGUI):
|
||||
"% synopsis: Synopsis One.\n\n"
|
||||
"Paragraph One.\n\n"
|
||||
))
|
||||
assert theIndex.refIndex[sHandle]["T000001"]["tags"] == (
|
||||
assert theIndex._refIndex[sHandle]["T000001"]["tags"] == (
|
||||
[[3, "@pov", "One"], [5, "@char", "Two"]]
|
||||
)
|
||||
|
||||
|
||||
@@ -26,11 +26,11 @@ def testGuiViewer_Main(qtbot, monkeypatch, nwGUI, nwLipsum):
|
||||
assert nwGUI.openProject(nwLipsum)
|
||||
|
||||
# Rebuild the index as it isn't automatically copied
|
||||
assert nwGUI.theIndex.tagIndex == {}
|
||||
assert nwGUI.theIndex.refIndex == {}
|
||||
assert nwGUI.theIndex._tagIndex == {}
|
||||
assert nwGUI.theIndex._refIndex == {}
|
||||
nwGUI.mainMenu.aRebuildIndex.activate(QAction.Trigger)
|
||||
assert nwGUI.theIndex.tagIndex != {}
|
||||
assert nwGUI.theIndex.refIndex != {}
|
||||
assert nwGUI.theIndex._tagIndex != {}
|
||||
assert nwGUI.theIndex._refIndex != {}
|
||||
|
||||
# Select a document in the project tree
|
||||
assert nwGUI.treeView.setSelectedHandle("88243afbe5ed8")
|
||||
|
||||
Reference in New Issue
Block a user