From a0fac27e075ecef32f4945e1654047ae29e97891 Mon Sep 17 00:00:00 2001 From: Olivier Keshavjee Date: Sun, 19 Nov 2017 01:36:58 +0100 Subject: [PATCH] Checkpoint: outlineItem tests --- manuskript/tests/models/conftest.py | 23 +++++++++ manuskript/tests/models/test_outlineItem.py | 53 ++++++++++++++++++++- 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 manuskript/tests/models/conftest.py diff --git a/manuskript/tests/models/conftest.py b/manuskript/tests/models/conftest.py new file mode 100644 index 00000000..25b2e57e --- /dev/null +++ b/manuskript/tests/models/conftest.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +# --!-- coding: utf8 --!-- + +"""Conf for models.""" + +import pytest +from manuskript.models import outlineModel, outlineItem + +@pytest.fixture +def outlineModelBasic(): + """Returns an outlineModel with a few items: + * Folder + * Text + * Text + """ + mdl = outlineModel(parent=None) + + 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) + + return mdl diff --git a/manuskript/tests/models/test_outlineItem.py b/manuskript/tests/models/test_outlineItem.py index d6e90ab8..33096487 100644 --- a/manuskript/tests/models/test_outlineItem.py +++ b/manuskript/tests/models/test_outlineItem.py @@ -5,7 +5,7 @@ import pytest -from manuskript.models.outlineItem import outlineItem +from manuskript.models import outlineItem @pytest.fixture def outlineItemFolder(): @@ -27,3 +27,54 @@ def test_outlineItemsProperties(outlineItemFolder, outlineItemText): assert folder.isFolder() == True assert text.isFolder() == False assert text.isText() == True + assert text.isMD() == text.isMMD() == True + + assert text.title() == "Text" + assert text.compile() == True + text.setData(text.enum.compile, 0) + assert text.compile() == False + assert folder.POV() == "" + assert folder.status() == "" + assert folder.POV() == "" + assert folder.customIcon() == "" + folder.setCustomIcon("custom") + assert folder.customIcon() == "custom" + + text.setData(text.enum.text, "Sample **text**.") + assert text.wordCount() == 2 + assert text.data(text.enum.revisions) == [] + text.setData(text.enum.setGoal, 4) + assert text.data(text.enum.goalPercentage) == .5 + +def test_modelStuff(outlineModelBasic): + + # Simplification + model = outlineModelBasic + + root = model.rootItem + assert len(root.children()) == 2 + folder = root.child(0) + text1 = folder.child(0) + text2 = root.child(1) + assert text1.compile() == True + folder.setData(folder.enum.compile, 0) + assert text1.compile() == False + + text1.setData(text1.enum.text, "Sample text.") + assert text1.wordCount() == 2 + assert folder.wordCount() == 2 + assert folder.stats() != "" + + text1.setData(text1.enum.text, "Sample\n---\ntext.") + folder.split("invalid mark") + assert folder.childCount() == 1 + folder.split("\n---\n") + assert folder.childCount() == 2 + text1.mergeWith([folder.child(1)]) + assert text1.text() == "Sample\n\ntext." + text1.setData(text1.enum.text, "Sample\nNewTitle\ntext.") + text1.splitAt(7, 8) + assert folder.child(1).title() == "NewTitle" + folder.removeChild(1) + folder.removeChild(0) + assert folder.childCount() == 0