From f098e74f45b57fcefc94199b58a020f1afea0bc8 Mon Sep 17 00:00:00 2001 From: Olivier Keshavjee Date: Sun, 19 Nov 2017 16:03:18 +0100 Subject: [PATCH] Adds: unit test coverage for outlineItem --- manuskript/models/outlineItem.py | 2 +- manuskript/tests/models/conftest.py | 4 +- manuskript/tests/models/test_outlineItem.py | 45 ++++++++++++++++----- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/manuskript/models/outlineItem.py b/manuskript/models/outlineItem.py index 5c561cbd..b42f8e2b 100644 --- a/manuskript/models/outlineItem.py +++ b/manuskript/models/outlineItem.py @@ -90,7 +90,7 @@ class outlineItem(abstractItem): E = self.enum if role == Qt.DisplayRole or role == Qt.EditRole: - if column == E.revisions: + if data == "" and column == E.revisions: return [] else: diff --git a/manuskript/tests/models/conftest.py b/manuskript/tests/models/conftest.py index 19073e6c..c8daa700 100644 --- a/manuskript/tests/models/conftest.py +++ b/manuskript/tests/models/conftest.py @@ -17,7 +17,7 @@ def outlineModelBasic(MWEmptyProject): root = mdl.rootItem f = outlineItem(title="Folder", parent=root) - t1 = outlineItem(title="Text 1", _type="md", parent=f) - t2 = outlineItem(title="Text 2", _type="md", parent=root) + t1 = outlineItem(title="Text", _type="md", parent=f) + t2 = outlineItem(title="Text", _type="md", parent=root) return mdl diff --git a/manuskript/tests/models/test_outlineItem.py b/manuskript/tests/models/test_outlineItem.py index daaddf0c..09a84a2d 100644 --- a/manuskript/tests/models/test_outlineItem.py +++ b/manuskript/tests/models/test_outlineItem.py @@ -22,6 +22,8 @@ def test_outlineItemsProperties(outlineItemFolder, outlineItemText): Tests with simple items, without parent or models. """ + from PyQt5.QtCore import Qt + # Simplification folder = outlineItemFolder text = outlineItemText @@ -37,9 +39,10 @@ def test_outlineItemsProperties(outlineItemFolder, outlineItemText): assert folder.status() == "" assert folder.label() == "" assert folder.customIcon() == "" + assert folder.data(42) == "" + assert folder.data(folder.enum.title, role=Qt.CheckStateRole) == None # setData and other setters - from PyQt5.QtCore import Qt assert text.data(text.enum.compile, role=Qt.CheckStateRole) == Qt.Checked text.setData(text.enum.compile, 0) assert text.compile() == False @@ -123,18 +126,38 @@ def test_modelStuff(outlineModelBasic): assert folder.findItemsContaining("VALUE", cols, MW, False) == [text2.ID()] # Revisions - # from manuskript import settings - # settings.revisions["smartremove"] = False - # text2.setData(text2.enum.text, "Some value.") - # assert text2.revisions() == 1 - # text2.clearAllRevisions() - # assert text2.revisions() == [] - # text2.setData(text2.enum.text, "Some value.") - # assert len(text2.revisions()) == 1 - # text2.setData(text2.enum.text, "Some new value.") - # assert len(text2.revisions()) == 1 # Auto clean + text2.clearAllRevisions() + assert text2.revisions() == [] + text2.setData(text2.enum.text, "Some value.") + assert len(text2.revisions()) == 1 + text2.setData(text2.enum.text, "Some new value.") + assert len(text2.revisions()) == 1 # Auto clean + text2.deleteRevision(text2.revisions()[0][0]) + assert len(text2.revisions()) == 0 + # Model, count and copy + k = folder._model + folder.setModel(14) + assert text2._model == 14 + folder.setModel(k) + assert folder.columnCount() == len(folder.enum) + text1 = text2.copy() + assert text1.ID() is None + folder.appendChild(text1) + assert text1.ID() is not None + assert folder.childCountRecursive() == 2 + assert text1.path() == "Folder > Text" + assert len(text1.pathID()) == 2 + # IDs + folder2 = folder.copy() + text3 = text1.copy() + text3.setData(text3.enum.ID, "0") + folder2.appendChild(text3) + folder.appendChild(folder2) + assert text3.ID() == "0" + root.checkIDs() + assert text3.ID() != "0" #TODO: copy (with children), IDs check, childcountrecursive # (cf. abstractItem)