From 8432dfdd1f71994afaea252912f8602c7b8317a2 Mon Sep 17 00:00:00 2001
From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com>
Date: Sat, 25 Jan 2025 21:18:30 +0100
Subject: [PATCH] Extend ODT and DocX tests
---
tests/test_formats/test_fmt_todocx.py | 74 +++++++++-
tests/test_formats/test_fmt_toodt.py | 197 ++++++++++++++++++--------
2 files changed, 208 insertions(+), 63 deletions(-)
diff --git a/tests/test_formats/test_fmt_todocx.py b/tests/test_formats/test_fmt_todocx.py
index b1ce0877..3d4e62a0 100644
--- a/tests/test_formats/test_fmt_todocx.py
+++ b/tests/test_formats/test_fmt_todocx.py
@@ -38,8 +38,8 @@ from tests.tools import DOCX_IGNORE, cmpFiles, xmlToText
@pytest.mark.core
-def testFmtToDocX_HeadingStyles(mockGUI):
- """Test formatting of headings."""
+def testFmtToDocX_NovelHeadingStyles(mockGUI):
+ """Test formatting of novel headings."""
project = NWProject()
doc = ToDocX(project)
doc._isNovel = True
@@ -151,6 +151,76 @@ def testFmtToDocX_HeadingStyles(mockGUI):
)
+@pytest.mark.core
+def testFmtToDocX_NotesHeadingStyles(mockGUI):
+ """Test formatting of notes headings."""
+ project = NWProject()
+ doc = ToDocX(project)
+ doc._isNovel = False
+ doc.initDocument()
+
+ # Title
+ # =====
+
+ xTest = ET.Element(_wTag("body"))
+ doc._text = "#! Hello World"
+ doc.tokenizeText()
+ doc.doConvert()
+ doc._pars[-1].toXml(xTest)
+ assert xmlToText(xTest) == (
+ ''
+ 'Hello World'
+ )
+
+ # Heading 1
+ # =========
+ doc._text = "# Hello World"
+ xTest = ET.Element(_wTag("body"))
+ doc.tokenizeText()
+ doc.doConvert()
+ doc._pars[-1].toXml(xTest)
+ assert xmlToText(xTest) == (
+ ''
+ 'Hello World'
+ )
+
+ # Heading 2
+ # =========
+ doc._text = "## Hello World"
+ xTest = ET.Element(_wTag("body"))
+ doc.tokenizeText()
+ doc.doConvert()
+ doc._pars[-1].toXml(xTest)
+ assert xmlToText(xTest) == (
+ ''
+ 'Hello World'
+ )
+
+ # Heading 3
+ # =========
+ doc._text = "### Hello World"
+ xTest = ET.Element(_wTag("body"))
+ doc.tokenizeText()
+ doc.doConvert()
+ doc._pars[-1].toXml(xTest)
+ assert xmlToText(xTest) == (
+ ''
+ 'Hello World'
+ )
+
+ # Heading 4
+ # =========
+ doc._text = "#### Hello World"
+ xTest = ET.Element(_wTag("body"))
+ doc.tokenizeText()
+ doc.doConvert()
+ doc._pars[-1].toXml(xTest)
+ assert xmlToText(xTest) == (
+ ''
+ 'Hello World'
+ )
+
+
@pytest.mark.core
def testFmtToDocX_ParagraphStyles(mockGUI):
"""Test formatting of paragraphs."""
diff --git a/tests/test_formats/test_fmt_toodt.py b/tests/test_formats/test_fmt_toodt.py
index 5cdc53a3..4b3911bb 100644
--- a/tests/test_formats/test_fmt_toodt.py
+++ b/tests/test_formats/test_fmt_toodt.py
@@ -295,69 +295,12 @@ def testFmtToOdt_DialogueFormatting(mockGUI):
@pytest.mark.core
-def testFmtToOdt_ConvertHeaders(mockGUI):
- """Test the converter of the ToOdt class."""
+def testFmtToOdt_ConvertNovelHeadings(mockGUI):
+ """Test the novel heading converter of the ToOdt class."""
project = NWProject()
odt = ToOdt(project, isFlat=True)
odt._isNovel = True
- # Header 1
- odt._text = "# Title\n"
- odt.setPartitionFormat(f"Part{nwHeadFmt.BR}{nwHeadFmt.TITLE}")
- odt.tokenizeText()
- odt.initDocument()
- odt.doConvert()
- odt.closeDocument()
- assert odt.errData == []
- assert xmlToText(odt._xText) == (
- ''
- 'PartTitle'
- ''
- )
-
- # Header 2
- odt._text = "## Title\n"
- odt.setChapterFormat(f"Chapter {nwHeadFmt.CH_NUM}{nwHeadFmt.BR}{nwHeadFmt.TITLE}")
- odt.tokenizeText()
- odt.initDocument()
- odt.doConvert()
- odt.closeDocument()
- assert odt.errData == []
- assert xmlToText(odt._xText) == (
- ''
- 'Chapter 1'
- 'Title'
- ''
- )
-
- # Header 3
- odt._text = "### Title\n"
- odt.setSceneFormat(f"Scene {nwHeadFmt.SC_ABS}{nwHeadFmt.BR}{nwHeadFmt.TITLE}")
- odt.tokenizeText()
- odt.initDocument()
- odt.doConvert()
- odt.closeDocument()
- assert odt.errData == []
- assert xmlToText(odt._xText) == (
- ''
- 'Scene 1'
- 'Title'
- ''
- )
-
- # Header 4
- odt._text = "#### Title\n"
- odt.tokenizeText()
- odt.initDocument()
- odt.doConvert()
- odt.closeDocument()
- assert odt.errData == []
- assert xmlToText(odt._xText) == (
- ''
- 'Title'
- ''
- )
-
# Title
odt._isFirst = True
odt._text = "#! Title\n"
@@ -372,7 +315,36 @@ def testFmtToOdt_ConvertHeaders(mockGUI):
''
)
- # Unnumbered chapter
+ # Partition
+ odt._text = "# Title\n"
+ odt.setPartitionFormat(f"Part{nwHeadFmt.BR}{nwHeadFmt.TITLE}")
+ odt.tokenizeText()
+ odt.initDocument()
+ odt.doConvert()
+ odt.closeDocument()
+ assert odt.errData == []
+ assert xmlToText(odt._xText) == (
+ ''
+ 'PartTitle'
+ ''
+ )
+
+ # Chapter
+ odt._text = "## Title\n"
+ odt.setChapterFormat(f"Chapter {nwHeadFmt.CH_NUM}{nwHeadFmt.BR}{nwHeadFmt.TITLE}")
+ odt.tokenizeText()
+ odt.initDocument()
+ odt.doConvert()
+ odt.closeDocument()
+ assert odt.errData == []
+ assert xmlToText(odt._xText) == (
+ ''
+ 'Chapter 1'
+ 'Title'
+ ''
+ )
+
+ # Unnumbered Chapter
odt._text = "##! Prologue\n"
odt.tokenizeText()
odt.initDocument()
@@ -381,7 +353,110 @@ def testFmtToOdt_ConvertHeaders(mockGUI):
assert odt.errData == []
assert xmlToText(odt._xText) == (
''
- 'Prologue'
+ 'Prologue'
+ ''
+ )
+
+ # Scene
+ odt._text = "### Title\n"
+ odt.setSceneFormat(f"Scene {nwHeadFmt.SC_ABS}{nwHeadFmt.BR}{nwHeadFmt.TITLE}")
+ odt.tokenizeText()
+ odt.initDocument()
+ odt.doConvert()
+ odt.closeDocument()
+ assert odt.errData == []
+ assert xmlToText(odt._xText) == (
+ ''
+ 'Scene 1'
+ 'Title'
+ ''
+ )
+
+ # Alt. Scene
+ odt._text = "###! Title\n"
+ odt.setHardSceneFormat(f"Scene {nwHeadFmt.SC_ABS}{nwHeadFmt.BR}{nwHeadFmt.TITLE}")
+ odt.tokenizeText()
+ odt.initDocument()
+ odt.doConvert()
+ odt.closeDocument()
+ assert odt.errData == []
+ assert xmlToText(odt._xText) == (
+ ''
+ 'Scene 2'
+ 'Title'
+ ''
+ )
+
+ # Section
+ odt._text = "#### Title\n"
+ odt.tokenizeText()
+ odt.initDocument()
+ odt.doConvert()
+ odt.closeDocument()
+ assert odt.errData == []
+ assert xmlToText(odt._xText) == (
+ ''
+ 'Title'
+ ''
+ )
+
+
+@pytest.mark.core
+def testFmtToOdt_ConvertNotesHeadings(mockGUI):
+ """Test the notes headings converter of the ToOdt class."""
+ project = NWProject()
+ odt = ToOdt(project, isFlat=True)
+ odt._isNovel = False
+
+ # Header 1
+ odt._text = "# Title\n"
+ odt.tokenizeText()
+ odt.initDocument()
+ odt.doConvert()
+ odt.closeDocument()
+ assert odt.errData == []
+ assert xmlToText(odt._xText) == (
+ ''
+ 'Title'
+ ''
+ )
+
+ # Header 2
+ odt._text = "## Title\n"
+ odt.tokenizeText()
+ odt.initDocument()
+ odt.doConvert()
+ odt.closeDocument()
+ assert odt.errData == []
+ assert xmlToText(odt._xText) == (
+ ''
+ 'Title'
+ ''
+ )
+
+ # Header 3
+ odt._text = "### Title\n"
+ odt.tokenizeText()
+ odt.initDocument()
+ odt.doConvert()
+ odt.closeDocument()
+ assert odt.errData == []
+ assert xmlToText(odt._xText) == (
+ ''
+ 'Title'
+ ''
+ )
+
+ # Header 4
+ odt._text = "#### Title\n"
+ odt.tokenizeText()
+ odt.initDocument()
+ odt.doConvert()
+ odt.closeDocument()
+ assert odt.errData == []
+ assert xmlToText(odt._xText) == (
+ ''
+ 'Title'
''
)