diff --git a/novelwriter/core/project.py b/novelwriter/core/project.py index dbe09be8..14d4bd29 100644 --- a/novelwriter/core/project.py +++ b/novelwriter/core/project.py @@ -410,6 +410,7 @@ class NWProject: def closeProject(self, idleTime: float = 0.0) -> None: """Close the project.""" logger.info("Closing project") + self._index.clearIndex() # Triggers clear signal, see #1718 self._options.saveSettings() self._tree.writeToCFile() self._session.appendSession(idleTime) diff --git a/tests/test_core/test_core_index.py b/tests/test_core/test_core_index.py index f225d0f2..eb9144ed 100644 --- a/tests/test_core/test_core_index.py +++ b/tests/test_core/test_core_index.py @@ -25,18 +25,19 @@ import pytest from shutil import copyfile -from mocked import causeException -from novelwriter.core.item import NWItem from tools import C, buildTestProject, cmpFiles, writeFile +from mocked import causeException +from novelwriter import SHARED from novelwriter.enum import nwComment, nwItemClass, nwItemLayout from novelwriter.constants import nwFiles +from novelwriter.core.item import NWItem from novelwriter.core.index import IndexItem, NWIndex, countWords, TagsIndex, processComment from novelwriter.core.project import NWProject @pytest.mark.core -def testCoreIndex_LoadSave(monkeypatch, prjLipsum, mockGUI, tstPaths): +def testCoreIndex_LoadSave(qtbot, monkeypatch, prjLipsum, mockGUI, tstPaths): """Test core functionality of scanning, saving, loading and checking the index cache file. """ @@ -148,8 +149,10 @@ def testCoreIndex_LoadSave(monkeypatch, prjLipsum, mockGUI, tstPaths): assert "fb609cd8319dc" in index._itemIndex assert "7a992350f3eb6" in index._itemIndex - # Finalise - project.closeProject() + # Close Project + with qtbot.waitSignal(SHARED.indexCleared, timeout=1000): + # Regression test for issue #1718 + project.closeProject() # END Test testCoreIndex_LoadSave