From 6ee326e7168eae7fbc48909703320b7581006e40 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Sun, 11 Oct 2020 21:21:33 +0200 Subject: [PATCH] Hardcode the values of the session stats log --- tests/test_dialogs.py | 76 ++++++++++++------------------------------- 1 file changed, 20 insertions(+), 56 deletions(-) diff --git a/tests/test_dialogs.py b/tests/test_dialogs.py index 1b9cf880..a78a684b 100644 --- a/tests/test_dialogs.py +++ b/tests/test_dialogs.py @@ -23,7 +23,7 @@ from nw.gui import ( GuiProjectLoad, GuiPreferences ) from nw.gui.custom import QuotesDialog -from nw.constants import nwItemType, nwItemLayout, nwItemClass +from nw.constants import nwItemType, nwItemLayout, nwItemClass, nwFiles keyDelay = 2 typeDelay = 1 @@ -233,54 +233,15 @@ def testWritingStatsExport(qtbot, monkeypatch, yesToAll, nwFuncTemp, nwTemp): assert nwGUI.closeProject() qtbot.wait(stepDelay) - # Check that we cannot open when there is no project - nwGUI.mainMenu.aWritingStats.activate(QAction.Trigger) - assert getGuiItem("GuiWritingStats") is None - - # Add some text to the scene file - assert nwGUI.openProject(nwFuncTemp) - qtbot.wait(stepDelay) - - assert nwGUI.openDocument("0e17daca5f3e1") - nwGUI.docEditor.clear() - assert nwGUI.docEditor.insertText( - "# Scene One\n\n" - "It was the best of times, it was the worst of times, it was the age of wisdom, it was " - "the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it " - "was the season of Light, it was the season of Darkness, it was the spring of hope, it " - "was the winter of despair, we had everything before us, we had nothing before us, we " - "were all going direct to Heaven, we were all going direct the other way – in short, the " - "period was so far like the present period, that some of its noisiest authorities " - "insisted on its being received, for good or for evil, in the superlative degree of " - "comparison only.\n\n" - ) - qtbot.wait(stepDelay) - assert nwGUI.saveDocument() - qtbot.wait(200) # Ensures that the session length is > 0 - - assert nwGUI.saveProject() - assert nwGUI.closeProject() - qtbot.wait(stepDelay) - - # Add a note file with some text - assert nwGUI.openProject(nwFuncTemp) - qtbot.wait(stepDelay) - - nwGUI.treeView.clearSelection() - nwGUI.treeView._getTreeItem("71ee45a3c0db9").setSelected(True) - nwGUI.treeView.newTreeItem(nwItemType.FILE, None) - assert nwGUI.openSelectedItem() - assert nwGUI.docEditor.insertText( - "# Jane Doe\n\n" - "All about Jane.\n\n" - ) - qtbot.wait(stepDelay) - assert nwGUI.saveDocument() - qtbot.wait(200) # Ensures that the session length is > 0 - - assert nwGUI.saveProject() - assert nwGUI.closeProject() - qtbot.wait(stepDelay) + sessFile = os.path.join(nwFuncTemp, "meta", nwFiles.SESS_STATS) + with open(sessFile, mode="w+", encoding="utf-8") as outFile: + outFile.write( + "# Start Time End Time Novel Notes\n" + "2020-01-01 21:00:00 2020-01-01 21:00:05 6 0\n" + "2020-01-03 21:00:00 2020-01-03 21:00:15 125 0\n" + "2020-01-03 21:30:00 2020-01-03 21:30:15 125 5\n" + "2020-01-06 21:00:00 2020-01-06 21:00:10 125 5\n" + ) # Open again, and check the stats assert nwGUI.openProject(nwFuncTemp) @@ -299,17 +260,18 @@ def testWritingStatsExport(qtbot, monkeypatch, yesToAll, nwFuncTemp, nwTemp): monkeypatch.setattr(QFileDialog, "getSaveFileName", lambda ss, tt, pp, options: (pp, "")) assert sessLog._saveData(sessLog.FMT_CSV) - qtbot.wait(stepDelay) + qtbot.wait(100) assert sessLog._saveData(sessLog.FMT_JSON) - qtbot.wait(stepDelay) + qtbot.wait(100) jsonStats = os.path.join(nwFuncTemp, "sessionStats.json") with open(jsonStats, mode="r", encoding="utf-8") as inFile: jsonData = json.loads(inFile.read()) qtbot.wait(stepDelay) + assert len(jsonData) == 3 - assert jsonData[1]["length"] >= 0 + assert jsonData[1]["length"] >= 14.0 assert jsonData[1]["newWords"] == 119 assert jsonData[1]["novelWords"] == 125 assert jsonData[1]["noteWords"] == 0 @@ -325,7 +287,7 @@ def testWritingStatsExport(qtbot, monkeypatch, yesToAll, nwFuncTemp, nwTemp): jsonData = json.loads(inFile.read()) assert len(jsonData) == 1 - assert jsonData[0]["length"] >= 0 + assert jsonData[0]["length"] >= 14.0 assert jsonData[0]["newWords"] == 5 assert jsonData[0]["novelWords"] == 125 assert jsonData[0]["noteWords"] == 5 @@ -342,7 +304,7 @@ def testWritingStatsExport(qtbot, monkeypatch, yesToAll, nwFuncTemp, nwTemp): jsonData = json.loads(inFile.read()) assert len(jsonData) == 2 - assert jsonData[1]["length"] >= 0 + assert jsonData[1]["length"] >= 14.0 assert jsonData[1]["newWords"] == 119 assert jsonData[1]["novelWords"] == 125 assert jsonData[1]["noteWords"] == 0 @@ -371,7 +333,7 @@ def testWritingStatsExport(qtbot, monkeypatch, yesToAll, nwFuncTemp, nwTemp): with open(jsonStats, mode="r", encoding="utf-8") as inFile: jsonData = json.loads(inFile.read()) - assert len(jsonData) == 3 + assert len(jsonData) == 4 # Group by Day qtbot.mouseClick(sessLog.groupByDay, Qt.LeftButton) @@ -385,11 +347,13 @@ def testWritingStatsExport(qtbot, monkeypatch, yesToAll, nwFuncTemp, nwTemp): # Check against both 1 and 2 as this can be 2 if test was started just before midnight. # A failed test should in any case produce a 4 - assert len(jsonData) in (1, 2) + assert len(jsonData) == 3 # qtbot.stopForInteraction() sessLog._doClose() + assert nwGUI.closeProject() + qtbot.wait(stepDelay) nwGUI.closeMain() @pytest.mark.gui