Fix tests

This commit is contained in:
Veronica Berglyd Olsen
2022-02-14 22:18:38 +01:00
parent 05aa656e75
commit 3fdea6e57a
4 changed files with 68 additions and 45 deletions
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<novelWriterXML appVersion="1.5-alpha0" hexVersion="0x010500a0" fileVersion="1.2" timeStamp="2021-08-02 02:29:01"> <novelWriterXML appVersion="1.6-rc1" hexVersion="0x010600c1" fileVersion="1.3" timeStamp="2022-02-14 22:15:58">
<project> <project>
<name>New Project</name> <name>New Project</name>
<title></title> <title></title>
@@ -39,7 +39,7 @@
<entry blue="0" green="200" red="50">Main</entry> <entry blue="0" green="200" red="50">Main</entry>
</importance> </importance>
</settings> </settings>
<content count="12"> <content count="16">
<item handle="73475cb40a568" order="0" parent="None"> <item handle="73475cb40a568" order="0" parent="None">
<name>Novel</name> <name>Novel</name>
<type>ROOT</type> <type>ROOT</type>
@@ -112,27 +112,55 @@
<cursorPos>0</cursorPos> <cursorPos>0</cursorPos>
</item> </item>
<item handle="1a6562590ef19" order="0" parent="None"> <item handle="1a6562590ef19" order="0" parent="None">
<name>Novel</name>
<type>ROOT</type>
<class>NOVEL</class>
<status>New</status>
<expanded>False</expanded>
</item>
<item handle="031b4af5197ec" order="0" parent="None">
<name>Plot</name>
<type>ROOT</type>
<class>PLOT</class>
<status>New</status>
<expanded>False</expanded>
</item>
<item handle="41cfc0d1f2d12" order="0" parent="None">
<name>Character</name>
<type>ROOT</type>
<class>CHARACTER</class>
<status>New</status>
<expanded>False</expanded>
</item>
<item handle="2858dcd1057d3" order="0" parent="None">
<name>World</name>
<type>ROOT</type>
<class>WORLD</class>
<status>New</status>
<expanded>False</expanded>
</item>
<item handle="2fca346db6561" order="0" parent="None">
<name>Timeline</name> <name>Timeline</name>
<type>ROOT</type> <type>ROOT</type>
<class>TIMELINE</class> <class>TIMELINE</class>
<status>New</status> <status>New</status>
<expanded>False</expanded> <expanded>False</expanded>
</item> </item>
<item handle="031b4af5197ec" order="0" parent="None"> <item handle="02d20bbd7e394" order="0" parent="None">
<name>Object</name> <name>Object</name>
<type>ROOT</type> <type>ROOT</type>
<class>OBJECT</class> <class>OBJECT</class>
<status>New</status> <status>New</status>
<expanded>False</expanded> <expanded>False</expanded>
</item> </item>
<item handle="41cfc0d1f2d12" order="0" parent="None"> <item handle="7688b6ef52555" order="0" parent="None">
<name>Custom1</name> <name>Custom1</name>
<type>ROOT</type> <type>ROOT</type>
<class>CUSTOM</class> <class>CUSTOM</class>
<status>New</status> <status>New</status>
<expanded>False</expanded> <expanded>False</expanded>
</item> </item>
<item handle="2858dcd1057d3" order="0" parent="None"> <item handle="c837649cce43f" order="0" parent="None">
<name>Custom2</name> <name>Custom2</name>
<type>ROOT</type> <type>ROOT</type>
<class>CUSTOM</class> <class>CUSTOM</class>
+4 -4
View File
@@ -275,10 +275,10 @@ def testCoreProject_NewRoot(fncDir, outDir, refDir, mockGUI):
assert theProject.closeProject() is True assert theProject.closeProject() is True
assert theProject.openProject(projFile) is True assert theProject.openProject(projFile) is True
assert isinstance(theProject.newRoot("Novel", nwItemClass.NOVEL), type(None)) assert isinstance(theProject.newRoot("Novel", nwItemClass.NOVEL), str)
assert isinstance(theProject.newRoot("Plot", nwItemClass.PLOT), type(None)) assert isinstance(theProject.newRoot("Plot", nwItemClass.PLOT), str)
assert isinstance(theProject.newRoot("Character", nwItemClass.CHARACTER), type(None)) assert isinstance(theProject.newRoot("Character", nwItemClass.CHARACTER), str)
assert isinstance(theProject.newRoot("World", nwItemClass.WORLD), type(None)) assert isinstance(theProject.newRoot("World", nwItemClass.WORLD), str)
assert isinstance(theProject.newRoot("Timeline", nwItemClass.TIMELINE), str) assert isinstance(theProject.newRoot("Timeline", nwItemClass.TIMELINE), str)
assert isinstance(theProject.newRoot("Object", nwItemClass.OBJECT), str) assert isinstance(theProject.newRoot("Object", nwItemClass.OBJECT), str)
assert isinstance(theProject.newRoot("Custom1", nwItemClass.CUSTOM), str) assert isinstance(theProject.newRoot("Custom1", nwItemClass.CUSTOM), str)
-6
View File
@@ -229,12 +229,6 @@ def testCoreTree_Methods(mockGUI, mockItems):
assert theTree.findRoot(nwItemClass.NOVEL) == "a000000000001" assert theTree.findRoot(nwItemClass.NOVEL) == "a000000000001"
assert theTree.findRoot(nwItemClass.CHARACTER) == "a000000000004" assert theTree.findRoot(nwItemClass.CHARACTER) == "a000000000004"
# Check for root uniqueness
assert theTree.checkRootUnique(nwItemClass.CUSTOM)
assert theTree.checkRootUnique(nwItemClass.WORLD)
assert not theTree.checkRootUnique(nwItemClass.NOVEL)
assert not theTree.checkRootUnique(nwItemClass.CHARACTER)
# Find root item of child item # Find root item of child item
assert theTree.getRootItem("b000000000001").itemHandle == "a000000000001" assert theTree.getRootItem("b000000000001").itemHandle == "a000000000001"
assert theTree.getRootItem("c000000000001").itemHandle == "a000000000001" assert theTree.getRootItem("c000000000001").itemHandle == "a000000000001"
+31 -30
View File
@@ -51,21 +51,22 @@ def testGuiProjTree_TreeItems(qtbot, caplog, monkeypatch, nwGUI, nwMinimal):
## ##
# Try to add and move item with no project # Try to add and move item with no project
assert not nwTree.newTreeItem(nwItemType.FILE, None) assert nwTree.newTreeItem(nwItemType.FILE, None) is False
assert not nwTree.moveTreeItem(1) assert nwTree.moveTreeItem(1) is False
# Open a project # Open a project
assert nwGUI.openProject(nwMinimal) assert nwGUI.openProject(nwMinimal) is True
# No location selected for new item # No location selected for new item
nwTree.clearSelection() nwTree.clearSelection()
assert not nwTree.newTreeItem(nwItemType.FILE, None) assert nwTree.newTreeItem(nwItemType.FILE, None) is False
assert not nwTree.newTreeItem(nwItemType.FOLDER, None) assert nwTree.newTreeItem(nwItemType.FOLDER, None) is False
assert nwTree.newTreeItem(nwItemType.FILE, nwItemClass.NOVEL) assert nwTree.newTreeItem(nwItemType.FILE, nwItemClass.NOVEL) is True
# No itemType set or ROOT, but no class # No itemType set or ROOT, but no class
assert not nwTree.newTreeItem(None, None) nwTree.clearSelection()
assert not nwTree.newTreeItem(nwItemType.ROOT, None) assert nwTree.newTreeItem(None, None) is False
assert nwTree.newTreeItem(nwItemType.ROOT, None) is False
# Select a location # Select a location
chItem = nwTree._getTreeItem("a6d311a93600a") chItem = nwTree._getTreeItem("a6d311a93600a")
@@ -73,23 +74,23 @@ def testGuiProjTree_TreeItems(qtbot, caplog, monkeypatch, nwGUI, nwMinimal):
chItem.setExpanded(True) chItem.setExpanded(True)
# Create new item with no class set (defaults to NOVEL) # Create new item with no class set (defaults to NOVEL)
assert nwTree.newTreeItem(nwItemType.FILE, None) assert nwTree.newTreeItem(nwItemType.FILE, None) is True
assert nwTree.newTreeItem(nwItemType.FOLDER, None) assert nwTree.newTreeItem(nwItemType.FOLDER, None) is True
# Check that we have the correct tree order # Check that we have the correct tree order
assert nwTree.getTreeFromHandle("a6d311a93600a") == [ assert nwTree.getTreeFromHandle("a6d311a93600a") == [
"a6d311a93600a", "f5ab3e30151e1", "8c659a11cd429", "44cb730c42048", "71ee45a3c0db9" "a6d311a93600a", "f5ab3e30151e1", "8c659a11cd429", "44cb730c42048", "71ee45a3c0db9"
] ]
# Add roots # Add more roots
assert not nwTree.newTreeItem(nwItemType.ROOT, nwItemClass.WORLD) # Duplicate assert nwTree.newTreeItem(nwItemType.ROOT, nwItemClass.WORLD) is True # Duplicate
assert nwTree.newTreeItem(nwItemType.ROOT, nwItemClass.CUSTOM) # Valid assert nwTree.newTreeItem(nwItemType.ROOT, nwItemClass.CUSTOM) is True # Unique
# Change max depth and try to add a subfolder that is too deep # Change max depth and try to add a subfolder that is too deep
monkeypatch.setattr("novelwriter.constants.nwConst.MAX_DEPTH", 2) monkeypatch.setattr("novelwriter.constants.nwConst.MAX_DEPTH", 2)
chItem = nwTree._getTreeItem("71ee45a3c0db9") chItem = nwTree._getTreeItem("71ee45a3c0db9")
nwTree.setCurrentItem(chItem, QItemSelectionModel.Current) nwTree.setCurrentItem(chItem, QItemSelectionModel.Current)
assert not nwTree.newTreeItem(nwItemType.FOLDER, None) assert nwTree.newTreeItem(nwItemType.FOLDER, None) is False
## ##
# Move Items # Move Items
@@ -99,7 +100,7 @@ def testGuiProjTree_TreeItems(qtbot, caplog, monkeypatch, nwGUI, nwMinimal):
# Shift focus and try to move item # Shift focus and try to move item
monkeypatch.setattr(GuiProjectTree, "hasFocus", lambda *a: False) monkeypatch.setattr(GuiProjectTree, "hasFocus", lambda *a: False)
assert not nwTree.moveTreeItem(1) assert nwTree.moveTreeItem(1) is False
assert nwTree.getTreeFromHandle("a6d311a93600a") == [ assert nwTree.getTreeFromHandle("a6d311a93600a") == [
"a6d311a93600a", "f5ab3e30151e1", "8c659a11cd429", "44cb730c42048", "71ee45a3c0db9" "a6d311a93600a", "f5ab3e30151e1", "8c659a11cd429", "44cb730c42048", "71ee45a3c0db9"
] ]
@@ -153,7 +154,7 @@ def testGuiProjTree_TreeItems(qtbot, caplog, monkeypatch, nwGUI, nwMinimal):
nwGUI.mainMenu.aMoveDown.activate(QAction.Trigger) nwGUI.mainMenu.aMoveDown.activate(QAction.Trigger)
nwTree.flushTreeOrder() nwTree.flushTreeOrder()
assert nwGUI.theProject.projTree._treeOrder.index("9d5247ab588e0") == 11 assert nwGUI.theProject.projTree._treeOrder.index("9d5247ab588e0") == 12
## ##
# Delete and Trash # Delete and Trash
@@ -168,20 +169,20 @@ def testGuiProjTree_TreeItems(qtbot, caplog, monkeypatch, nwGUI, nwMinimal):
# Delete the items we added earlier # Delete the items we added earlier
nwTree.clearSelection() nwTree.clearSelection()
assert not nwTree.emptyTrash() # No folder yet assert nwTree.emptyTrash() is False # No folder yet
assert not nwTree.deleteItem(None) assert nwTree.deleteItem(None) is False
assert not nwTree.deleteItem("1111111111111") assert nwTree.deleteItem("1111111111111") is False
assert nwTree.deleteItem("73475cb40a568") # New File assert nwTree.deleteItem("73475cb40a568") is True # New File
assert nwTree.deleteItem("71ee45a3c0db9") # New Folder assert nwTree.deleteItem("71ee45a3c0db9") is True # New Folder
assert nwTree.deleteItem("811786ad1ae74") # Custom Root assert nwTree.deleteItem("811786ad1ae74") is True # Custom Root
assert "73475cb40a568" in nwGUI.theProject.projTree._treeOrder assert "73475cb40a568" in nwGUI.theProject.projTree._treeOrder
assert "71ee45a3c0db9" not in nwGUI.theProject.projTree._treeOrder assert "71ee45a3c0db9" not in nwGUI.theProject.projTree._treeOrder
assert "811786ad1ae74" not in nwGUI.theProject.projTree._treeOrder assert "811786ad1ae74" not in nwGUI.theProject.projTree._treeOrder
# The file is in trash, empty it # The file is in trash, empty it
assert os.path.isfile(os.path.join(nwMinimal, "content", "73475cb40a568.nwd")) assert os.path.isfile(os.path.join(nwMinimal, "content", "73475cb40a568.nwd"))
assert nwTree.emptyTrash() assert nwTree.emptyTrash() is True
assert not nwTree.emptyTrash() # Already empty assert nwTree.emptyTrash() is False # Already empty
assert not os.path.isfile(os.path.join(nwMinimal, "content", "73475cb40a568.nwd")) assert not os.path.isfile(os.path.join(nwMinimal, "content", "73475cb40a568.nwd"))
assert "73475cb40a568" not in nwGUI.theProject.projTree._treeOrder assert "73475cb40a568" not in nwGUI.theProject.projTree._treeOrder
@@ -189,8 +190,8 @@ def testGuiProjTree_TreeItems(qtbot, caplog, monkeypatch, nwGUI, nwMinimal):
trashHandle = nwGUI.theProject.projTree.trashRoot() trashHandle = nwGUI.theProject.projTree.trashRoot()
chItem = nwTree._getTreeItem(trashHandle) chItem = nwTree._getTreeItem(trashHandle)
nwTree.setCurrentItem(chItem, QItemSelectionModel.Current) nwTree.setCurrentItem(chItem, QItemSelectionModel.Current)
assert not nwTree.newTreeItem(nwItemType.FILE, None) assert nwTree.newTreeItem(nwItemType.FILE, None) is False
assert not nwTree.newTreeItem(nwItemType.FOLDER, None) assert nwTree.newTreeItem(nwItemType.FOLDER, None) is False
# Close the project # Close the project
nwGUI.closeProject() nwGUI.closeProject()
@@ -217,21 +218,21 @@ def testGuiProjTree_TreeItems(qtbot, caplog, monkeypatch, nwGUI, nwMinimal):
## ##
# Add an item with an invalid type # Add an item with an invalid type
assert not nwTree.newTreeItem(nwItemType.NO_TYPE, nwItemClass.NOVEL) assert nwTree.newTreeItem(nwItemType.NO_TYPE, nwItemClass.NOVEL) is False
assert "Failed to add new item" in caplog.messages[-1] assert "Failed to add new item" in caplog.messages[-1]
# Add new file after one that has no parent handle # Add new file after one that has no parent handle
chItem = nwTree._getTreeItem("44cb730c42048") chItem = nwTree._getTreeItem("44cb730c42048")
nwTree.setCurrentItem(chItem, QItemSelectionModel.Current) nwTree.setCurrentItem(chItem, QItemSelectionModel.Current)
nwTree.theProject.projTree["44cb730c42048"]._parent = None nwTree.theProject.projTree["44cb730c42048"]._parent = None
assert not nwTree.newTreeItem(nwItemType.FILE, nwItemClass.NOVEL) assert nwTree.newTreeItem(nwItemType.FILE, nwItemClass.NOVEL) is False
nwTree.clearSelection() nwTree.clearSelection()
# Add a file with no parent, and fail to find a suitable parent item # Add a file with no parent, and fail to find a suitable parent item
monkeypatch.setattr("novelwriter.core.tree.NWTree.findRoot", lambda *a: None) monkeypatch.setattr("novelwriter.core.tree.NWTree.findRoot", lambda *a: None)
assert not nwTree.newTreeItem(nwItemType.FILE, nwItemClass.NOVEL) assert nwTree.newTreeItem(nwItemType.FILE, nwItemClass.NOVEL) is False
assert not nwTree.newTreeItem(nwItemType.FOLDER, nwItemClass.NOVEL) assert nwTree.newTreeItem(nwItemType.FOLDER, nwItemClass.NOVEL) is False
# qtbot.stopForInteraction() # qtbot.stopForInteraction()
nwGUI.closeProject() nwGUI.closeProject()