Convert format codes to enums
This commit is contained in:
@@ -35,6 +35,7 @@ from novelwriter.formats.todocx import (
|
||||
S_FNOTE, S_HEAD1, S_HEAD2, S_HEAD3, S_HEAD4, S_META, S_NORM, S_SEP,
|
||||
S_TITLE, ToDocX, _mkTag, _wTag
|
||||
)
|
||||
from novelwriter.formats.tokenizer import BlockFmt, BlockTyp
|
||||
|
||||
from tests.tools import DOCX_IGNORE, cmpFiles
|
||||
|
||||
@@ -70,7 +71,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Normal Text
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TEXT, 0, "Hello World", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.TEXT, 0, "Hello World", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -80,7 +81,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Title
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TITLE, 0, "Hello World", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.TITLE, 0, "Hello World", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -90,7 +91,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Heading Level 1
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_HEAD1, 0, "Hello World", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.HEAD1, 0, "Hello World", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -100,7 +101,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Heading Level 2
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_HEAD2, 0, "Hello World", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.HEAD2, 0, "Hello World", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -110,7 +111,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Heading Level 3
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_HEAD3, 0, "Hello World", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.HEAD3, 0, "Hello World", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -120,7 +121,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Heading Level 4
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_HEAD4, 0, "Hello World", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.HEAD4, 0, "Hello World", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -130,7 +131,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Separator
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_SEP, 0, "* * *", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.SEP, 0, "* * *", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -140,7 +141,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Empty Paragraph
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_SKIP, 0, "* * *", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.SKIP, 0, "* * *", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -149,7 +150,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Synopsis
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_SYNOPSIS, 0, "Hello World", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.SYNOPSIS, 0, "Hello World", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -161,7 +162,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Short
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_SHORT, 0, "Hello World", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.SHORT, 0, "Hello World", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -173,7 +174,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Comment
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_COMMENT, 0, "Hello World", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.COMMENT, 0, "Hello World", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -185,7 +186,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Tags and References (Single)
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_KEYWORD, 0, "tag: Stuff", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.KEYWORD, 0, "tag: Stuff", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -197,7 +198,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Tags and References (Multiple)
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_KEYWORD, 0, "char: Jane, John", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.KEYWORD, 0, "char: Jane, John", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -209,7 +210,7 @@ def testFmtToDocX_ParagraphStyles(mockGUI):
|
||||
|
||||
# Tags and References (Invalid)
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_KEYWORD, 0, "stuff: Stuff", [], doc.A_NONE)]
|
||||
doc._tokens = [(BlockTyp.KEYWORD, 0, "stuff: Stuff", [], BlockFmt.NONE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -229,7 +230,7 @@ def testFmtToDocX_ParagraphFormatting(mockGUI):
|
||||
|
||||
# Left Align
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TEXT, 0, "Hello World", [], doc.A_LEFT)]
|
||||
doc._tokens = [(BlockTyp.TEXT, 0, "Hello World", [], BlockFmt.LEFT)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -239,7 +240,7 @@ def testFmtToDocX_ParagraphFormatting(mockGUI):
|
||||
|
||||
# Right Align
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TEXT, 0, "Hello World", [], doc.A_RIGHT)]
|
||||
doc._tokens = [(BlockTyp.TEXT, 0, "Hello World", [], BlockFmt.RIGHT)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -249,7 +250,7 @@ def testFmtToDocX_ParagraphFormatting(mockGUI):
|
||||
|
||||
# Center Align
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TEXT, 0, "Hello World", [], doc.A_CENTRE)]
|
||||
doc._tokens = [(BlockTyp.TEXT, 0, "Hello World", [], BlockFmt.CENTRE)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -259,7 +260,7 @@ def testFmtToDocX_ParagraphFormatting(mockGUI):
|
||||
|
||||
# Justify
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TEXT, 0, "Hello World", [], doc.A_JUSTIFY)]
|
||||
doc._tokens = [(BlockTyp.TEXT, 0, "Hello World", [], BlockFmt.JUSTIFY)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -269,7 +270,7 @@ def testFmtToDocX_ParagraphFormatting(mockGUI):
|
||||
|
||||
# Page Break Before
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TEXT, 0, "Hello World", [], doc.A_PBB)]
|
||||
doc._tokens = [(BlockTyp.TEXT, 0, "Hello World", [], BlockFmt.PBB)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -281,7 +282,7 @@ def testFmtToDocX_ParagraphFormatting(mockGUI):
|
||||
|
||||
# Page Break After
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TEXT, 0, "Hello World", [], doc.A_PBA)]
|
||||
doc._tokens = [(BlockTyp.TEXT, 0, "Hello World", [], BlockFmt.PBA)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -293,7 +294,7 @@ def testFmtToDocX_ParagraphFormatting(mockGUI):
|
||||
|
||||
# Zero Margins
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TEXT, 0, "Hello World", [], doc.A_Z_TOPMRG | doc.A_Z_BTMMRG)]
|
||||
doc._tokens = [(BlockTyp.TEXT, 0, "Hello World", [], BlockFmt.Z_TOPMRG | BlockFmt.Z_BTMMRG)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -304,7 +305,7 @@ def testFmtToDocX_ParagraphFormatting(mockGUI):
|
||||
|
||||
# Indent
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TEXT, 0, "Hello World", [], doc.A_IND_L | doc.A_IND_R)]
|
||||
doc._tokens = [(BlockTyp.TEXT, 0, "Hello World", [], BlockFmt.IND_L | BlockFmt.IND_R)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
@@ -315,7 +316,7 @@ def testFmtToDocX_ParagraphFormatting(mockGUI):
|
||||
|
||||
# First Line Indent
|
||||
xTest = ET.Element(_wTag("body"))
|
||||
doc._tokens = [(doc.T_TEXT, 0, "Hello World", [], doc.A_IND_T)]
|
||||
doc._tokens = [(BlockTyp.TEXT, 0, "Hello World", [], BlockFmt.IND_T)]
|
||||
doc.doConvert()
|
||||
doc._pars[-1].toXml(xTest)
|
||||
assert xmlToText(xTest) == (
|
||||
|
||||
@@ -27,6 +27,7 @@ import pytest
|
||||
from novelwriter import CONFIG
|
||||
from novelwriter.core.project import NWProject
|
||||
from novelwriter.formats.tohtml import ToHtml
|
||||
from novelwriter.formats.tokenizer import BlockFmt, BlockTyp
|
||||
|
||||
|
||||
@pytest.mark.core
|
||||
@@ -359,7 +360,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Title
|
||||
html._tokens = [
|
||||
(html.T_TITLE, 1, "A Title", [], html.A_PBB | html.A_CENTRE),
|
||||
(BlockTyp.TITLE, 1, "A Title", [], BlockFmt.PBB | BlockFmt.CENTRE),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
@@ -369,7 +370,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Unnumbered
|
||||
html._tokens = [
|
||||
(html.T_HEAD2, 1, "Prologue", [], html.A_PBB),
|
||||
(BlockTyp.HEAD2, 1, "Prologue", [], BlockFmt.PBB),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
@@ -382,14 +383,14 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Separator
|
||||
html._tokens = [
|
||||
(html.T_SEP, 1, "* * *", [], html.A_CENTRE),
|
||||
(BlockTyp.SEP, 1, "* * *", [], BlockFmt.CENTRE),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == "<p class='sep' style='text-align: center;'>* * *</p>\n"
|
||||
|
||||
# Skip
|
||||
html._tokens = [
|
||||
(html.T_SKIP, 1, "", [], html.A_NONE),
|
||||
(BlockTyp.SKIP, 1, "", [], BlockFmt.NONE),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == "<p class='skip'> </p>\n"
|
||||
@@ -402,7 +403,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
# Align Left
|
||||
html.setStyles(False)
|
||||
html._tokens = [
|
||||
(html.T_HEAD1, 1, "A Title", [], html.A_LEFT),
|
||||
(BlockTyp.HEAD1, 1, "A Title", [], BlockFmt.LEFT),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
@@ -413,7 +414,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Align Left
|
||||
html._tokens = [
|
||||
(html.T_HEAD1, 1, "A Title", [], html.A_LEFT),
|
||||
(BlockTyp.HEAD1, 1, "A Title", [], BlockFmt.LEFT),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
@@ -422,7 +423,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Align Right
|
||||
html._tokens = [
|
||||
(html.T_HEAD1, 1, "A Title", [], html.A_RIGHT),
|
||||
(BlockTyp.HEAD1, 1, "A Title", [], BlockFmt.RIGHT),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
@@ -431,7 +432,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Align Centre
|
||||
html._tokens = [
|
||||
(html.T_HEAD1, 1, "A Title", [], html.A_CENTRE),
|
||||
(BlockTyp.HEAD1, 1, "A Title", [], BlockFmt.CENTRE),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
@@ -440,7 +441,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Align Justify
|
||||
html._tokens = [
|
||||
(html.T_HEAD1, 1, "A Title", [], html.A_JUSTIFY),
|
||||
(BlockTyp.HEAD1, 1, "A Title", [], BlockFmt.JUSTIFY),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
@@ -452,7 +453,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Page Break Always
|
||||
html._tokens = [
|
||||
(html.T_HEAD1, 1, "A Title", [], html.A_PBB | html.A_PBA),
|
||||
(BlockTyp.HEAD1, 1, "A Title", [], BlockFmt.PBB | BlockFmt.PBA),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
@@ -465,7 +466,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Indent Left
|
||||
html._tokens = [
|
||||
(html.T_TEXT, 1, "Some text ...", [], html.A_IND_L),
|
||||
(BlockTyp.TEXT, 1, "Some text ...", [], BlockFmt.IND_L),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
@@ -474,7 +475,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Indent Right
|
||||
html._tokens = [
|
||||
(html.T_TEXT, 1, "Some text ...", [], html.A_IND_R),
|
||||
(BlockTyp.TEXT, 1, "Some text ...", [], BlockFmt.IND_R),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
@@ -483,7 +484,7 @@ def testFmtToHtml_ConvertDirect(mockGUI):
|
||||
|
||||
# Text Indent
|
||||
html._tokens = [
|
||||
(html.T_TEXT, 1, "Some text ...", [], html.A_IND_T),
|
||||
(BlockTyp.TEXT, 1, "Some text ...", [], BlockFmt.IND_T),
|
||||
]
|
||||
html.doConvert()
|
||||
assert html.result == (
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -23,6 +23,7 @@ from __future__ import annotations
|
||||
import pytest
|
||||
|
||||
from novelwriter.core.project import NWProject
|
||||
from novelwriter.formats.tokenizer import BlockFmt, BlockTyp
|
||||
from novelwriter.formats.tomarkdown import ToMarkdown
|
||||
|
||||
|
||||
@@ -220,7 +221,7 @@ def testFmtToMarkdown_ConvertDirect(mockGUI):
|
||||
|
||||
# Title
|
||||
toMD._tokens = [
|
||||
(toMD.T_TITLE, 1, "A Title", [], toMD.A_PBB | toMD.A_CENTRE),
|
||||
(BlockTyp.TITLE, 1, "A Title", [], BlockFmt.PBB | BlockFmt.CENTRE),
|
||||
]
|
||||
toMD.doConvert()
|
||||
assert toMD.result == "# A Title\n\n"
|
||||
@@ -230,14 +231,14 @@ def testFmtToMarkdown_ConvertDirect(mockGUI):
|
||||
|
||||
# Separator
|
||||
toMD._tokens = [
|
||||
(toMD.T_SEP, 1, "* * *", [], toMD.A_CENTRE),
|
||||
(BlockTyp.SEP, 1, "* * *", [], BlockFmt.CENTRE),
|
||||
]
|
||||
toMD.doConvert()
|
||||
assert toMD.result == "* * *\n\n"
|
||||
|
||||
# Skip
|
||||
toMD._tokens = [
|
||||
(toMD.T_SKIP, 1, "", [], toMD.A_NONE),
|
||||
(BlockTyp.SKIP, 1, "", [], BlockFmt.NONE),
|
||||
]
|
||||
toMD.doConvert()
|
||||
assert toMD.result == "\n\n"
|
||||
@@ -300,7 +301,7 @@ def testFmtToMarkdown_Format(mockGUI):
|
||||
project = NWProject()
|
||||
toMD = ToMarkdown(project, False)
|
||||
|
||||
assert toMD._formatKeywords("", toMD.A_NONE) == ""
|
||||
assert toMD._formatKeywords("tag: Jane", toMD.A_NONE) == "**Tag:** Jane\n\n"
|
||||
assert toMD._formatKeywords("tag: Jane, John", toMD.A_NONE) == "**Tag:** Jane, John\n\n"
|
||||
assert toMD._formatKeywords("tag: Jane", toMD.A_Z_BTMMRG) == "**Tag:** Jane \n"
|
||||
assert toMD._formatKeywords("", BlockFmt.NONE) == ""
|
||||
assert toMD._formatKeywords("tag: Jane", BlockFmt.NONE) == "**Tag:** Jane\n\n"
|
||||
assert toMD._formatKeywords("tag: Jane, John", BlockFmt.NONE) == "**Tag:** Jane, John\n\n"
|
||||
assert toMD._formatKeywords("tag: Jane", BlockFmt.Z_BTMMRG) == "**Tag:** Jane \n"
|
||||
|
||||
@@ -30,6 +30,7 @@ import pytest
|
||||
from novelwriter.common import xmlIndent
|
||||
from novelwriter.constants import nwHeadFmt
|
||||
from novelwriter.core.project import NWProject
|
||||
from novelwriter.formats.tokenizer import BlockFmt, BlockTyp, TextFmt
|
||||
from novelwriter.formats.toodt import ODTParagraphStyle, ODTTextStyle, ToOdt, XMLParagraph, _mkTag
|
||||
|
||||
from tests.tools import ODT_IGNORE, cmpFiles
|
||||
@@ -183,7 +184,7 @@ def testFmtToOdt_TextFormatting(mockGUI):
|
||||
|
||||
# Formatted Text
|
||||
text = "A bold word"
|
||||
fmt = [(2, odt.FMT_B_B, ""), (6, odt.FMT_B_E, "")]
|
||||
fmt = [(2, TextFmt.B_B, ""), (6, TextFmt.B_E, "")]
|
||||
xTest = ET.Element(_mkTag("office", "text"))
|
||||
odt._addTextPar(xTest, "Standard", oStyle, text, tFmt=fmt)
|
||||
assert odt.errData == []
|
||||
@@ -196,7 +197,7 @@ def testFmtToOdt_TextFormatting(mockGUI):
|
||||
|
||||
# Incorrectly Formatted Text
|
||||
text = "A few words"
|
||||
fmt = [(2, odt.FMT_B_B, ""), (5, odt.FMT_B_E, ""), (7, 99999, "")]
|
||||
fmt = [(2, TextFmt.B_B, ""), (5, TextFmt.B_E, ""), (7, 99999, "")]
|
||||
xTest = ET.Element(_mkTag("office", "text"))
|
||||
odt._addTextPar(xTest, "Standard", oStyle, text, tFmt=fmt)
|
||||
assert odt.errData == ["Unknown format tag encountered"]
|
||||
@@ -210,7 +211,7 @@ def testFmtToOdt_TextFormatting(mockGUI):
|
||||
|
||||
# Unclosed format
|
||||
text = "A bold word"
|
||||
fmt = [(2, odt.FMT_B_B, "")]
|
||||
fmt = [(2, TextFmt.B_B, "")]
|
||||
xTest = ET.Element(_mkTag("office", "text"))
|
||||
odt._addTextPar(xTest, "Standard", oStyle, text, tFmt=fmt)
|
||||
assert odt.errData == []
|
||||
@@ -245,7 +246,7 @@ def testFmtToOdt_DialogueFormatting(mockGUI):
|
||||
|
||||
# Regular dialogue
|
||||
text = "Text with 'dialogue in it.'"
|
||||
fmt = [(10, odt.FMT_DL_B, ""), (27, odt.FMT_DL_E, "")]
|
||||
fmt = [(10, TextFmt.DL_B, ""), (27, TextFmt.DL_E, "")]
|
||||
xTest = ET.Element(_mkTag("office", "text"))
|
||||
odt._addTextPar(xTest, "Standard", oStyle, text, tFmt=fmt)
|
||||
assert odt.errData == []
|
||||
@@ -258,7 +259,7 @@ def testFmtToOdt_DialogueFormatting(mockGUI):
|
||||
|
||||
# Alternative dialogue
|
||||
text = "Text with ::dialogue in it.::"
|
||||
fmt = [(10, odt.FMT_ADL_B, ""), (29, odt.FMT_ADL_E, "")]
|
||||
fmt = [(10, TextFmt.ADL_B, ""), (29, TextFmt.ADL_E, "")]
|
||||
xTest = ET.Element(_mkTag("office", "text"))
|
||||
odt._addTextPar(xTest, "Standard", oStyle, text, tFmt=fmt)
|
||||
assert odt.errData == []
|
||||
@@ -719,7 +720,7 @@ def testFmtToOdt_ConvertDirect(mockGUI):
|
||||
# Justified
|
||||
doc = ToOdt(project, isFlat=True)
|
||||
doc._tokens = [
|
||||
(doc.T_TEXT, 1, "This is a paragraph", [], doc.A_JUSTIFY),
|
||||
(BlockTyp.TEXT, 1, "This is a paragraph", [], BlockFmt.JUSTIFY),
|
||||
]
|
||||
doc.initDocument()
|
||||
doc.doConvert()
|
||||
@@ -739,7 +740,7 @@ def testFmtToOdt_ConvertDirect(mockGUI):
|
||||
# Page Break After
|
||||
doc = ToOdt(project, isFlat=True)
|
||||
doc._tokens = [
|
||||
(doc.T_TEXT, 1, "This is a paragraph", [], doc.A_PBA),
|
||||
(BlockTyp.TEXT, 1, "This is a paragraph", [], BlockFmt.PBA),
|
||||
]
|
||||
doc.initDocument()
|
||||
doc.doConvert()
|
||||
@@ -894,28 +895,28 @@ def testFmtToOdt_SpecialFormats(mockGUI):
|
||||
project = NWProject()
|
||||
odt = ToOdt(project, isFlat=True)
|
||||
|
||||
assert odt._formatSynopsis("synopsis text", [(9, ToOdt.FMT_STRIP, "")], True) == (
|
||||
assert odt._formatSynopsis("synopsis text", [(9, TextFmt.STRIP, "")], True) == (
|
||||
"Synopsis: synopsis text", [
|
||||
(0, ToOdt.FMT_B_B, ""), (9, ToOdt.FMT_B_E, ""), (19, ToOdt.FMT_STRIP, "")
|
||||
(0, TextFmt.B_B, ""), (9, TextFmt.B_E, ""), (19, TextFmt.STRIP, "")
|
||||
]
|
||||
)
|
||||
assert odt._formatSynopsis("short text", [(6, ToOdt.FMT_STRIP, "")], False) == (
|
||||
assert odt._formatSynopsis("short text", [(6, TextFmt.STRIP, "")], False) == (
|
||||
"Short Description: short text", [
|
||||
(0, ToOdt.FMT_B_B, ""), (18, ToOdt.FMT_B_E, ""), (25, ToOdt.FMT_STRIP, "")
|
||||
(0, TextFmt.B_B, ""), (18, TextFmt.B_E, ""), (25, TextFmt.STRIP, "")
|
||||
]
|
||||
)
|
||||
assert odt._formatComments("comment text", [(8, ToOdt.FMT_STRIP, "")]) == (
|
||||
assert odt._formatComments("comment text", [(8, TextFmt.STRIP, "")]) == (
|
||||
"Comment: comment text", [
|
||||
(0, ToOdt.FMT_B_B, ""), (8, ToOdt.FMT_B_E, ""), (17, ToOdt.FMT_STRIP, "")
|
||||
(0, TextFmt.B_B, ""), (8, TextFmt.B_E, ""), (17, TextFmt.STRIP, "")
|
||||
]
|
||||
)
|
||||
|
||||
assert odt._formatKeywords("") == ("", [])
|
||||
assert odt._formatKeywords("tag: Jane") == (
|
||||
"Tag: Jane", [(0, ToOdt.FMT_B_B, ""), (4, ToOdt.FMT_B_E, "")]
|
||||
"Tag: Jane", [(0, TextFmt.B_B, ""), (4, TextFmt.B_E, "")]
|
||||
)
|
||||
assert odt._formatKeywords("char: Bod, Jane") == (
|
||||
"Characters: Bod, Jane", [(0, ToOdt.FMT_B_B, ""), (11, ToOdt.FMT_B_E, "")]
|
||||
"Characters: Bod, Jane", [(0, TextFmt.B_B, ""), (11, TextFmt.B_E, "")]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ from PyQt5.QtGui import QTextBlock, QTextCharFormat, QTextCursor
|
||||
from novelwriter import CONFIG
|
||||
from novelwriter.constants import nwUnicode
|
||||
from novelwriter.core.project import NWProject
|
||||
from novelwriter.formats.tokenizer import BlockFmt, BlockTyp
|
||||
from novelwriter.formats.toqdoc import TextDocumentTheme, ToQTextDocument
|
||||
from novelwriter.types import (
|
||||
QtAlignAbsolute, QtAlignCenter, QtAlignJustify, QtAlignLeft, QtAlignRight,
|
||||
@@ -68,55 +69,55 @@ def testFmtToQTextDocument_ConvertHeaders(mockGUI):
|
||||
block = qdoc.document.findBlockByNumber(0)
|
||||
assert block.text() == "Title"
|
||||
bFmt = block.blockFormat()
|
||||
assert bFmt.topMargin() == qdoc._mHead[qdoc.T_TITLE][0]
|
||||
assert bFmt.bottomMargin() == qdoc._mHead[qdoc.T_TITLE][1]
|
||||
assert bFmt.topMargin() == qdoc._mHead[BlockTyp.TITLE][0]
|
||||
assert bFmt.bottomMargin() == qdoc._mHead[BlockTyp.TITLE][1]
|
||||
cFmt = charFmtInBlock(block, 1)
|
||||
assert cFmt.fontWeight() == qdoc._bold
|
||||
assert cFmt.fontPointSize() == qdoc._sHead[qdoc.T_TITLE]
|
||||
assert cFmt.fontPointSize() == qdoc._sHead[BlockTyp.TITLE]
|
||||
assert cFmt.foreground().color() == THEME.text
|
||||
|
||||
# Partition
|
||||
block = qdoc.document.findBlockByNumber(1)
|
||||
assert block.text() == "Partition"
|
||||
bFmt = block.blockFormat()
|
||||
assert bFmt.topMargin() == qdoc._mHead[qdoc.T_HEAD1][0]
|
||||
assert bFmt.bottomMargin() == qdoc._mHead[qdoc.T_HEAD1][1]
|
||||
assert bFmt.topMargin() == qdoc._mHead[BlockTyp.HEAD1][0]
|
||||
assert bFmt.bottomMargin() == qdoc._mHead[BlockTyp.HEAD1][1]
|
||||
cFmt = charFmtInBlock(block, 1)
|
||||
assert cFmt.fontWeight() == qdoc._bold
|
||||
assert cFmt.fontPointSize() == qdoc._sHead[qdoc.T_HEAD1]
|
||||
assert cFmt.fontPointSize() == qdoc._sHead[BlockTyp.HEAD1]
|
||||
assert cFmt.foreground().color() == THEME.head
|
||||
|
||||
# Chapter
|
||||
block = qdoc.document.findBlockByNumber(2)
|
||||
assert block.text() == "Chapter"
|
||||
bFmt = block.blockFormat()
|
||||
assert bFmt.topMargin() == qdoc._mHead[qdoc.T_HEAD2][0]
|
||||
assert bFmt.bottomMargin() == qdoc._mHead[qdoc.T_HEAD2][1]
|
||||
assert bFmt.topMargin() == qdoc._mHead[BlockTyp.HEAD2][0]
|
||||
assert bFmt.bottomMargin() == qdoc._mHead[BlockTyp.HEAD2][1]
|
||||
cFmt = charFmtInBlock(block, 1)
|
||||
assert cFmt.fontWeight() == qdoc._bold
|
||||
assert cFmt.fontPointSize() == qdoc._sHead[qdoc.T_HEAD2]
|
||||
assert cFmt.fontPointSize() == qdoc._sHead[BlockTyp.HEAD2]
|
||||
assert cFmt.foreground().color() == THEME.head
|
||||
|
||||
# Scene
|
||||
block = qdoc.document.findBlockByNumber(3)
|
||||
assert block.text() == "Scene"
|
||||
bFmt = block.blockFormat()
|
||||
assert bFmt.topMargin() == qdoc._mHead[qdoc.T_HEAD3][0]
|
||||
assert bFmt.bottomMargin() == qdoc._mHead[qdoc.T_HEAD3][1]
|
||||
assert bFmt.topMargin() == qdoc._mHead[BlockTyp.HEAD3][0]
|
||||
assert bFmt.bottomMargin() == qdoc._mHead[BlockTyp.HEAD3][1]
|
||||
cFmt = charFmtInBlock(block, 1)
|
||||
assert cFmt.fontWeight() == qdoc._bold
|
||||
assert cFmt.fontPointSize() == qdoc._sHead[qdoc.T_HEAD3]
|
||||
assert cFmt.fontPointSize() == qdoc._sHead[BlockTyp.HEAD3]
|
||||
assert cFmt.foreground().color() == THEME.head
|
||||
|
||||
# Section
|
||||
block = qdoc.document.findBlockByNumber(4)
|
||||
assert block.text() == "Section"
|
||||
bFmt = block.blockFormat()
|
||||
assert bFmt.topMargin() == qdoc._mHead[qdoc.T_HEAD4][0]
|
||||
assert bFmt.bottomMargin() == qdoc._mHead[qdoc.T_HEAD4][1]
|
||||
assert bFmt.topMargin() == qdoc._mHead[BlockTyp.HEAD4][0]
|
||||
assert bFmt.bottomMargin() == qdoc._mHead[BlockTyp.HEAD4][1]
|
||||
cFmt = charFmtInBlock(block, 1)
|
||||
assert cFmt.fontWeight() == qdoc._bold
|
||||
assert cFmt.fontPointSize() == qdoc._sHead[qdoc.T_HEAD4]
|
||||
assert cFmt.fontPointSize() == qdoc._sHead[BlockTyp.HEAD4]
|
||||
assert cFmt.foreground().color() == THEME.head
|
||||
|
||||
|
||||
@@ -410,8 +411,8 @@ def testFmtToQTextDocument_TextBlockFormats(mockGUI):
|
||||
qdoc.document.clear()
|
||||
|
||||
qdoc._tokens = [
|
||||
(qdoc.T_TEXT, 1, "This is justified", [], qdoc.A_JUSTIFY),
|
||||
(qdoc.T_TEXT, 1, "This has a page break", [], qdoc.A_PBA),
|
||||
(BlockTyp.TEXT, 1, "This is justified", [], BlockFmt.JUSTIFY),
|
||||
(BlockTyp.TEXT, 1, "This has a page break", [], BlockFmt.PBA),
|
||||
]
|
||||
qdoc.doConvert()
|
||||
assert qdoc.document.blockCount() == 2
|
||||
|
||||
Reference in New Issue
Block a user