Clean up wrapped code, and rename test variable

This commit is contained in:
Veronica Berglyd Olsen
2024-10-22 00:40:54 +02:00
parent 16076ebfb6
commit 2d8664b3ce
2 changed files with 172 additions and 181 deletions
+8 -16
View File
@@ -256,34 +256,26 @@ class Tokenizer(ABC):
def setTitleStyle(self, center: bool, pageBreak: bool) -> None: def setTitleStyle(self, center: bool, pageBreak: bool) -> None:
"""Set the title heading style.""" """Set the title heading style."""
self._titleStyle = ( self._titleStyle = BlockFmt.CENTRE if center else BlockFmt.NONE
(BlockFmt.CENTRE if center else BlockFmt.NONE) self._titleStyle |= BlockFmt.PBB if pageBreak else BlockFmt.NONE
| (BlockFmt.PBB if pageBreak else BlockFmt.NONE)
)
return return
def setPartitionStyle(self, center: bool, pageBreak: bool) -> None: def setPartitionStyle(self, center: bool, pageBreak: bool) -> None:
"""Set the partition heading style.""" """Set the partition heading style."""
self._partStyle = ( self._partStyle = BlockFmt.CENTRE if center else BlockFmt.NONE
(BlockFmt.CENTRE if center else BlockFmt.NONE) self._partStyle |= BlockFmt.PBB if pageBreak else BlockFmt.NONE
| (BlockFmt.PBB if pageBreak else BlockFmt.NONE)
)
return return
def setChapterStyle(self, center: bool, pageBreak: bool) -> None: def setChapterStyle(self, center: bool, pageBreak: bool) -> None:
"""Set the chapter heading style.""" """Set the chapter heading style."""
self._chapterStyle = ( self._chapterStyle = BlockFmt.CENTRE if center else BlockFmt.NONE
(BlockFmt.CENTRE if center else BlockFmt.NONE) self._chapterStyle |= BlockFmt.PBB if pageBreak else BlockFmt.NONE
| (BlockFmt.PBB if pageBreak else BlockFmt.NONE)
)
return return
def setSceneStyle(self, center: bool, pageBreak: bool) -> None: def setSceneStyle(self, center: bool, pageBreak: bool) -> None:
"""Set the scene heading style.""" """Set the scene heading style."""
self._sceneStyle = ( self._sceneStyle = BlockFmt.CENTRE if center else BlockFmt.NONE
(BlockFmt.CENTRE if center else BlockFmt.NONE) self._sceneStyle |= BlockFmt.PBB if pageBreak else BlockFmt.NONE
| (BlockFmt.PBB if pageBreak else BlockFmt.NONE)
)
return return
def setFont(self, font: QFont) -> None: def setFont(self, font: QFont) -> None:
+164 -165
View File
@@ -48,76 +48,75 @@ def charFmtInBlock(block: QTextBlock, pos: int) -> QTextCharFormat:
def testFmtToQTextDocument_ConvertHeaders(mockGUI): def testFmtToQTextDocument_ConvertHeaders(mockGUI):
"""Test header formats in the ToQTextDocument class.""" """Test header formats in the ToQTextDocument class."""
project = NWProject() project = NWProject()
qdoc = ToQTextDocument(project) doc = ToQTextDocument(project)
qdoc.initDocument() doc.initDocument()
# qdoc.saveDocument("") # Doesn't do anything for this format
qdoc._isNovel = True doc._isNovel = True
qdoc._isFirst = True doc._isFirst = True
qdoc._text = ( doc._text = (
"#! Title\n" "#! Title\n"
"# Partition\n" "# Partition\n"
"## Chapter\n" "## Chapter\n"
"### Scene\n" "### Scene\n"
"#### Section\n" "#### Section\n"
) )
qdoc.tokenizeText() doc.tokenizeText()
qdoc.doConvert() doc.doConvert()
assert qdoc.document.blockCount() == 5 assert doc.document.blockCount() == 5
# Title # Title
block = qdoc.document.findBlockByNumber(0) block = doc.document.findBlockByNumber(0)
assert block.text() == "Title" assert block.text() == "Title"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mHead[BlockTyp.TITLE][0] assert bFmt.topMargin() == doc._mHead[BlockTyp.TITLE][0]
assert bFmt.bottomMargin() == qdoc._mHead[BlockTyp.TITLE][1] assert bFmt.bottomMargin() == doc._mHead[BlockTyp.TITLE][1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.fontWeight() == qdoc._bold assert cFmt.fontWeight() == doc._bold
assert cFmt.fontPointSize() == qdoc._sHead[BlockTyp.TITLE] assert cFmt.fontPointSize() == doc._sHead[BlockTyp.TITLE]
assert cFmt.foreground().color() == THEME.text assert cFmt.foreground().color() == THEME.text
# Partition # Partition
block = qdoc.document.findBlockByNumber(1) block = doc.document.findBlockByNumber(1)
assert block.text() == "Partition" assert block.text() == "Partition"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mHead[BlockTyp.HEAD1][0] assert bFmt.topMargin() == doc._mHead[BlockTyp.HEAD1][0]
assert bFmt.bottomMargin() == qdoc._mHead[BlockTyp.HEAD1][1] assert bFmt.bottomMargin() == doc._mHead[BlockTyp.HEAD1][1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.fontWeight() == qdoc._bold assert cFmt.fontWeight() == doc._bold
assert cFmt.fontPointSize() == qdoc._sHead[BlockTyp.HEAD1] assert cFmt.fontPointSize() == doc._sHead[BlockTyp.HEAD1]
assert cFmt.foreground().color() == THEME.head assert cFmt.foreground().color() == THEME.head
# Chapter # Chapter
block = qdoc.document.findBlockByNumber(2) block = doc.document.findBlockByNumber(2)
assert block.text() == "Chapter" assert block.text() == "Chapter"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mHead[BlockTyp.HEAD2][0] assert bFmt.topMargin() == doc._mHead[BlockTyp.HEAD2][0]
assert bFmt.bottomMargin() == qdoc._mHead[BlockTyp.HEAD2][1] assert bFmt.bottomMargin() == doc._mHead[BlockTyp.HEAD2][1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.fontWeight() == qdoc._bold assert cFmt.fontWeight() == doc._bold
assert cFmt.fontPointSize() == qdoc._sHead[BlockTyp.HEAD2] assert cFmt.fontPointSize() == doc._sHead[BlockTyp.HEAD2]
assert cFmt.foreground().color() == THEME.head assert cFmt.foreground().color() == THEME.head
# Scene # Scene
block = qdoc.document.findBlockByNumber(3) block = doc.document.findBlockByNumber(3)
assert block.text() == "Scene" assert block.text() == "Scene"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mHead[BlockTyp.HEAD3][0] assert bFmt.topMargin() == doc._mHead[BlockTyp.HEAD3][0]
assert bFmt.bottomMargin() == qdoc._mHead[BlockTyp.HEAD3][1] assert bFmt.bottomMargin() == doc._mHead[BlockTyp.HEAD3][1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.fontWeight() == qdoc._bold assert cFmt.fontWeight() == doc._bold
assert cFmt.fontPointSize() == qdoc._sHead[BlockTyp.HEAD3] assert cFmt.fontPointSize() == doc._sHead[BlockTyp.HEAD3]
assert cFmt.foreground().color() == THEME.head assert cFmt.foreground().color() == THEME.head
# Section # Section
block = qdoc.document.findBlockByNumber(4) block = doc.document.findBlockByNumber(4)
assert block.text() == "Section" assert block.text() == "Section"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mHead[BlockTyp.HEAD4][0] assert bFmt.topMargin() == doc._mHead[BlockTyp.HEAD4][0]
assert bFmt.bottomMargin() == qdoc._mHead[BlockTyp.HEAD4][1] assert bFmt.bottomMargin() == doc._mHead[BlockTyp.HEAD4][1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.fontWeight() == qdoc._bold assert cFmt.fontWeight() == doc._bold
assert cFmt.fontPointSize() == qdoc._sHead[BlockTyp.HEAD4] assert cFmt.fontPointSize() == doc._sHead[BlockTyp.HEAD4]
assert cFmt.foreground().color() == THEME.head assert cFmt.foreground().color() == THEME.head
@@ -125,12 +124,12 @@ def testFmtToQTextDocument_ConvertHeaders(mockGUI):
def testFmtToQTextDocument_SeparatorSkip(mockGUI): def testFmtToQTextDocument_SeparatorSkip(mockGUI):
"""Test separator and skip in the ToQTextDocument class.""" """Test separator and skip in the ToQTextDocument class."""
project = NWProject() project = NWProject()
qdoc = ToQTextDocument(project) doc = ToQTextDocument(project)
qdoc.initDocument() doc.initDocument()
qdoc._isNovel = True doc._isNovel = True
qdoc._isFirst = True doc._isFirst = True
qdoc._text = ( doc._text = (
"#! Title\n" "#! Title\n"
"## Chapter\n" "## Chapter\n"
"### Scene 1\n" "### Scene 1\n"
@@ -140,50 +139,50 @@ def testFmtToQTextDocument_SeparatorSkip(mockGUI):
"#### Section\n" "#### Section\n"
"Text 3\n" "Text 3\n"
) )
qdoc.setSceneFormat("* * *", False) doc.setSceneFormat("* * *", False)
qdoc.setSectionFormat("", False) doc.setSectionFormat("", False)
qdoc.tokenizeText() doc.tokenizeText()
qdoc.doConvert() doc.doConvert()
assert qdoc.document.blockCount() == 7 assert doc.document.blockCount() == 7
# 0: Title # 0: Title
block = qdoc.document.findBlockByNumber(0) block = doc.document.findBlockByNumber(0)
assert block.text() == "Title" assert block.text() == "Title"
# 1: Chapter # 1: Chapter
block = qdoc.document.findBlockByNumber(1) block = doc.document.findBlockByNumber(1)
assert block.text() == "Chapter" assert block.text() == "Chapter"
# Hidden: Scene 1 # Hidden: Scene 1
# 2: Text 1 # 2: Text 1
block = qdoc.document.findBlockByNumber(2) block = doc.document.findBlockByNumber(2)
assert block.text() == "Text 1" assert block.text() == "Text 1"
# 3: Scene 2 # 3: Scene 2
block = qdoc.document.findBlockByNumber(3) block = doc.document.findBlockByNumber(3)
assert block.text() == "* * *" assert block.text() == "* * *"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mSep[0] assert bFmt.topMargin() == doc._mSep[0]
assert bFmt.bottomMargin() == qdoc._mSep[1] assert bFmt.bottomMargin() == doc._mSep[1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.foreground().color() == THEME.text assert cFmt.foreground().color() == THEME.text
# 4: Text 2 # 4: Text 2
block = qdoc.document.findBlockByNumber(4) block = doc.document.findBlockByNumber(4)
assert block.text() == "Text 2" assert block.text() == "Text 2"
# 5: Section # 5: Section
block = qdoc.document.findBlockByNumber(5) block = doc.document.findBlockByNumber(5)
assert block.text() == nwUnicode.U_NBSP assert block.text() == nwUnicode.U_NBSP
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mText[0] assert bFmt.topMargin() == doc._mText[0]
assert bFmt.bottomMargin() == qdoc._mText[1] assert bFmt.bottomMargin() == doc._mText[1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.foreground().color() == THEME.text assert cFmt.foreground().color() == THEME.text
# 6: Text 3 # 6: Text 3
block = qdoc.document.findBlockByNumber(6) block = doc.document.findBlockByNumber(6)
assert block.text() == "Text 3" assert block.text() == "Text 3"
@@ -191,15 +190,15 @@ def testFmtToQTextDocument_SeparatorSkip(mockGUI):
def testFmtToQTextDocument_NovelMeta(mockGUI): def testFmtToQTextDocument_NovelMeta(mockGUI):
"""Test novel meta formats in the ToQTextDocument class.""" """Test novel meta formats in the ToQTextDocument class."""
project = NWProject() project = NWProject()
qdoc = ToQTextDocument(project) doc = ToQTextDocument(project)
qdoc.initDocument() doc.initDocument()
qdoc._isNovel = True doc._isNovel = True
qdoc._isFirst = True doc._isFirst = True
qdoc.setComments(True) doc.setComments(True)
qdoc.setSynopsis(True) doc.setSynopsis(True)
qdoc.setKeywords(True) doc.setKeywords(True)
qdoc._text = ( doc._text = (
"### Scene\n\n" "### Scene\n\n"
"@pov: Jane\n" "@pov: Jane\n"
"@char: John, Bob\n\n" "@char: John, Bob\n\n"
@@ -207,19 +206,19 @@ def testFmtToQTextDocument_NovelMeta(mockGUI):
"% A regular comment\n\n" "% A regular comment\n\n"
"Text\n\n" "Text\n\n"
) )
qdoc.tokenizeText() doc.tokenizeText()
qdoc.doConvert() doc.doConvert()
assert qdoc.document.blockCount() == 6 assert doc.document.blockCount() == 6
# 0: Scene # 0: Scene
block = qdoc.document.findBlockByNumber(0) block = doc.document.findBlockByNumber(0)
assert block.text() == "Scene" assert block.text() == "Scene"
# 1: Jane # 1: Jane
block = qdoc.document.findBlockByNumber(1) block = doc.document.findBlockByNumber(1)
assert block.text() == "Point of View: Jane" assert block.text() == "Point of View: Jane"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mMeta[0] assert bFmt.topMargin() == doc._mMeta[0]
assert bFmt.bottomMargin() == 0.0 assert bFmt.bottomMargin() == 0.0
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.foreground().color() == THEME.keyword assert cFmt.foreground().color() == THEME.keyword
@@ -227,40 +226,40 @@ def testFmtToQTextDocument_NovelMeta(mockGUI):
assert cFmt.foreground().color() == THEME.tag assert cFmt.foreground().color() == THEME.tag
# 2: John, Bob # 2: John, Bob
block = qdoc.document.findBlockByNumber(2) block = doc.document.findBlockByNumber(2)
assert block.text() == "Characters: John, Bob" assert block.text() == "Characters: John, Bob"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == 0.0 assert bFmt.topMargin() == 0.0
assert bFmt.bottomMargin() == qdoc._mMeta[1] assert bFmt.bottomMargin() == doc._mMeta[1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.foreground().color() == THEME.keyword assert cFmt.foreground().color() == THEME.keyword
cFmt = charFmtInBlock(block, 13) cFmt = charFmtInBlock(block, 13)
assert cFmt.foreground().color() == THEME.tag assert cFmt.foreground().color() == THEME.tag
# 3: Synopsis # 3: Synopsis
block = qdoc.document.findBlockByNumber(3) block = doc.document.findBlockByNumber(3)
assert block.text() == "Synopsis: Stuff that happened" assert block.text() == "Synopsis: Stuff that happened"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mText[0] assert bFmt.topMargin() == doc._mText[0]
assert bFmt.bottomMargin() == qdoc._mText[1] assert bFmt.bottomMargin() == doc._mText[1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.foreground().color() == THEME.modifier assert cFmt.foreground().color() == THEME.modifier
cFmt = charFmtInBlock(block, 11) cFmt = charFmtInBlock(block, 11)
assert cFmt.foreground().color() == THEME.note assert cFmt.foreground().color() == THEME.note
# 4: Comment # 4: Comment
block = qdoc.document.findBlockByNumber(4) block = doc.document.findBlockByNumber(4)
assert block.text() == "Comment: A regular comment" assert block.text() == "Comment: A regular comment"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mText[0] assert bFmt.topMargin() == doc._mText[0]
assert bFmt.bottomMargin() == qdoc._mText[1] assert bFmt.bottomMargin() == doc._mText[1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.foreground().color() == THEME.comment assert cFmt.foreground().color() == THEME.comment
cFmt = charFmtInBlock(block, 10) cFmt = charFmtInBlock(block, 10)
assert cFmt.foreground().color() == THEME.comment assert cFmt.foreground().color() == THEME.comment
# 5: Text # 5: Text
block = qdoc.document.findBlockByNumber(5) block = doc.document.findBlockByNumber(5)
assert block.text() == "Text" assert block.text() == "Text"
@@ -268,34 +267,34 @@ def testFmtToQTextDocument_NovelMeta(mockGUI):
def testFmtToQTextDocument_NoteMeta(mockGUI): def testFmtToQTextDocument_NoteMeta(mockGUI):
"""Test note meta formats in the ToQTextDocument class.""" """Test note meta formats in the ToQTextDocument class."""
project = NWProject() project = NWProject()
qdoc = ToQTextDocument(project) doc = ToQTextDocument(project)
qdoc.initDocument() doc.initDocument()
qdoc._isNovel = False doc._isNovel = False
qdoc._isFirst = True doc._isFirst = True
qdoc.setComments(True) doc.setComments(True)
qdoc.setSynopsis(True) doc.setSynopsis(True)
qdoc.setKeywords(True) doc.setKeywords(True)
qdoc._text = ( doc._text = (
"# Jane Smith\n\n" "# Jane Smith\n\n"
"@tag: Jane | Jane Smith\n" "@tag: Jane | Jane Smith\n"
"%Short: All about Jane\n\n" "%Short: All about Jane\n\n"
"Text\n\n" "Text\n\n"
) )
qdoc.tokenizeText() doc.tokenizeText()
qdoc.doConvert() doc.doConvert()
assert qdoc.document.blockCount() == 4 assert doc.document.blockCount() == 4
# 0: Title # 0: Title
block = qdoc.document.findBlockByNumber(0) block = doc.document.findBlockByNumber(0)
assert block.text() == "Jane Smith" assert block.text() == "Jane Smith"
# 1: Tag # 1: Tag
block = qdoc.document.findBlockByNumber(1) block = doc.document.findBlockByNumber(1)
assert block.text() == "Tag: Jane | Jane Smith" assert block.text() == "Tag: Jane | Jane Smith"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mMeta[0] assert bFmt.topMargin() == doc._mMeta[0]
assert bFmt.bottomMargin() == qdoc._mMeta[1] assert bFmt.bottomMargin() == doc._mMeta[1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.foreground().color() == THEME.keyword assert cFmt.foreground().color() == THEME.keyword
cFmt = charFmtInBlock(block, 6) cFmt = charFmtInBlock(block, 6)
@@ -306,18 +305,18 @@ def testFmtToQTextDocument_NoteMeta(mockGUI):
assert cFmt.foreground().color() == THEME.optional assert cFmt.foreground().color() == THEME.optional
# 2: Short # 2: Short
block = qdoc.document.findBlockByNumber(2) block = doc.document.findBlockByNumber(2)
assert block.text() == "Short Description: All about Jane" assert block.text() == "Short Description: All about Jane"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.topMargin() == qdoc._mText[0] assert bFmt.topMargin() == doc._mText[0]
assert bFmt.bottomMargin() == qdoc._mText[1] assert bFmt.bottomMargin() == doc._mText[1]
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.foreground().color() == THEME.modifier assert cFmt.foreground().color() == THEME.modifier
cFmt = charFmtInBlock(block, 20) cFmt = charFmtInBlock(block, 20)
assert cFmt.foreground().color() == THEME.note assert cFmt.foreground().color() == THEME.note
# 3: Text # 3: Text
block = qdoc.document.findBlockByNumber(3) block = doc.document.findBlockByNumber(3)
assert block.text() == "Text" assert block.text() == "Text"
@@ -325,18 +324,18 @@ def testFmtToQTextDocument_NoteMeta(mockGUI):
def testFmtToQTextDocument_TextBlockFormats(mockGUI): def testFmtToQTextDocument_TextBlockFormats(mockGUI):
"""Test text block formats in the ToQTextDocument class.""" """Test text block formats in the ToQTextDocument class."""
project = NWProject() project = NWProject()
qdoc = ToQTextDocument(project) doc = ToQTextDocument(project)
qdoc.setFirstLineIndent(True, 2.0, False) doc.setFirstLineIndent(True, 2.0, False)
qdoc.initDocument() doc.initDocument()
qdoc._isNovel = True doc._isNovel = True
qdoc._isFirst = True doc._isFirst = True
# Alignment & Indent # Alignment & Indent
# ================== # ==================
qdoc.document.clear() doc.document.clear()
qdoc._text = ( doc._text = (
"### Scene\n\n" "### Scene\n\n"
"Left <<\n\n" "Left <<\n\n"
">> Center <<\n\n" ">> Center <<\n\n"
@@ -346,85 +345,85 @@ def testFmtToQTextDocument_TextBlockFormats(mockGUI):
"> Double Indent <\n\n" "> Double Indent <\n\n"
"Text Indent\n\n" "Text Indent\n\n"
) )
qdoc.tokenizeText() doc.tokenizeText()
qdoc.doConvert() doc.doConvert()
assert qdoc.document.blockCount() == 8 assert doc.document.blockCount() == 8
# 0: Scene # 0: Scene
block = qdoc.document.findBlockByNumber(0) block = doc.document.findBlockByNumber(0)
assert block.text() == "Scene" assert block.text() == "Scene"
# 1: Left # 1: Left
block = qdoc.document.findBlockByNumber(1) block = doc.document.findBlockByNumber(1)
assert block.text() == "Left" assert block.text() == "Left"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.alignment() == QtAlignLeft assert bFmt.alignment() == QtAlignLeft
# 2: Center # 2: Center
block = qdoc.document.findBlockByNumber(2) block = doc.document.findBlockByNumber(2)
assert block.text() == "Center" assert block.text() == "Center"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.alignment() == QtAlignCenter assert bFmt.alignment() == QtAlignCenter
# 3: Right # 3: Right
block = qdoc.document.findBlockByNumber(3) block = doc.document.findBlockByNumber(3)
assert block.text() == "Right" assert block.text() == "Right"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.alignment() == QtAlignRight assert bFmt.alignment() == QtAlignRight
# 4: Left Indent # 4: Left Indent
block = qdoc.document.findBlockByNumber(4) block = doc.document.findBlockByNumber(4)
assert block.text() == "Left Indent" assert block.text() == "Left Indent"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.alignment() == QtAlignAbsolute assert bFmt.alignment() == QtAlignAbsolute
assert bFmt.leftMargin() == qdoc._mIndent assert bFmt.leftMargin() == doc._mIndent
assert bFmt.rightMargin() == 0.0 assert bFmt.rightMargin() == 0.0
# 5: Right Indent # 5: Right Indent
block = qdoc.document.findBlockByNumber(5) block = doc.document.findBlockByNumber(5)
assert block.text() == "Right Indent" assert block.text() == "Right Indent"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.alignment() == QtAlignAbsolute assert bFmt.alignment() == QtAlignAbsolute
assert bFmt.leftMargin() == 0.0 assert bFmt.leftMargin() == 0.0
assert bFmt.rightMargin() == qdoc._mIndent assert bFmt.rightMargin() == doc._mIndent
# 6: Double Indent # 6: Double Indent
block = qdoc.document.findBlockByNumber(6) block = doc.document.findBlockByNumber(6)
assert block.text() == "Double Indent" assert block.text() == "Double Indent"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.alignment() == QtAlignAbsolute assert bFmt.alignment() == QtAlignAbsolute
assert bFmt.leftMargin() == qdoc._mIndent assert bFmt.leftMargin() == doc._mIndent
assert bFmt.rightMargin() == qdoc._mIndent assert bFmt.rightMargin() == doc._mIndent
# 7: Text Indent # 7: Text Indent
block = qdoc.document.findBlockByNumber(7) block = doc.document.findBlockByNumber(7)
assert block.text() == "Text Indent" assert block.text() == "Text Indent"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.alignment() == QtAlignAbsolute assert bFmt.alignment() == QtAlignAbsolute
assert bFmt.textIndent() == qdoc._tIndent assert bFmt.textIndent() == doc._tIndent
assert bFmt.leftMargin() == 0.0 assert bFmt.leftMargin() == 0.0
assert bFmt.rightMargin() == 0.0 assert bFmt.rightMargin() == 0.0
# Unreachable # Unreachable
# =========== # ===========
# Some formatting markers are currently not reachable # Some formatting markers are currently not reachable
qdoc.document.clear() doc.document.clear()
qdoc._blocks = [ doc._blocks = [
(BlockTyp.TEXT, 1, "This is justified", [], BlockFmt.JUSTIFY), (BlockTyp.TEXT, 1, "This is justified", [], BlockFmt.JUSTIFY),
(BlockTyp.TEXT, 1, "This has a page break", [], BlockFmt.PBA), (BlockTyp.TEXT, 1, "This has a page break", [], BlockFmt.PBA),
] ]
qdoc.doConvert() doc.doConvert()
assert qdoc.document.blockCount() == 2 assert doc.document.blockCount() == 2
# 0: Justify # 0: Justify
block = qdoc.document.findBlockByNumber(0) block = doc.document.findBlockByNumber(0)
assert block.text() == "This is justified" assert block.text() == "This is justified"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.alignment() == QtAlignJustify assert bFmt.alignment() == QtAlignJustify
# 1: Page Break After # 1: Page Break After
block = qdoc.document.findBlockByNumber(1) block = doc.document.findBlockByNumber(1)
assert block.text() == "This has a page break" assert block.text() == "This has a page break"
bFmt = block.blockFormat() bFmt = block.blockFormat()
assert bFmt.pageBreakPolicy() == QtPageBreakAfter assert bFmt.pageBreakPolicy() == QtPageBreakAfter
@@ -439,22 +438,22 @@ def testFmtToQTextDocument_TextCharFormats(mockGUI):
CONFIG.altDialogClose = ">|" CONFIG.altDialogClose = ">|"
project = NWProject() project = NWProject()
qdoc = ToQTextDocument(project) doc = ToQTextDocument(project)
# Convert before init # Convert before init
qdoc._text = "Blabla" doc._text = "Blabla"
qdoc.setDialogueHighlight(True) doc.setDialogueHighlight(True)
qdoc.doConvert() doc.doConvert()
qdoc.tokenizeText() doc.tokenizeText()
assert qdoc.document.toPlainText() == "" assert doc.document.toPlainText() == ""
# Init # Init
qdoc.initDocument() doc.initDocument()
qdoc._isNovel = True doc._isNovel = True
qdoc._isFirst = True doc._isFirst = True
qdoc._text = ( doc._text = (
"### Scene\n\n" "### Scene\n\n"
"With [b]bold[/b] text\n\n" "With [b]bold[/b] text\n\n"
"With [i]italic[/i] text\n\n" "With [i]italic[/i] text\n\n"
@@ -466,26 +465,26 @@ def testFmtToQTextDocument_TextCharFormats(mockGUI):
"With \u201cdialog\u201d text\n\n" "With \u201cdialog\u201d text\n\n"
"With |<alternative dialog>| text\n\n" "With |<alternative dialog>| text\n\n"
) )
qdoc.tokenizeText() doc.tokenizeText()
qdoc.doConvert() doc.doConvert()
assert qdoc.document.blockCount() == 10 assert doc.document.blockCount() == 10
# 0: Scene # 0: Scene
block = qdoc.document.findBlockByNumber(0) block = doc.document.findBlockByNumber(0)
assert block.text() == "Scene" assert block.text() == "Scene"
# 1: Bold # 1: Bold
block = qdoc.document.findBlockByNumber(1) block = doc.document.findBlockByNumber(1)
assert block.text() == "With bold text" assert block.text() == "With bold text"
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.fontWeight() == qdoc._normal assert cFmt.fontWeight() == doc._normal
cFmt = charFmtInBlock(block, 6) cFmt = charFmtInBlock(block, 6)
assert cFmt.fontWeight() == qdoc._bold assert cFmt.fontWeight() == doc._bold
cFmt = charFmtInBlock(block, 10) cFmt = charFmtInBlock(block, 10)
assert cFmt.fontWeight() == qdoc._normal assert cFmt.fontWeight() == doc._normal
# 2: Italic # 2: Italic
block = qdoc.document.findBlockByNumber(2) block = doc.document.findBlockByNumber(2)
assert block.text() == "With italic text" assert block.text() == "With italic text"
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.fontItalic() is False assert cFmt.fontItalic() is False
@@ -495,7 +494,7 @@ def testFmtToQTextDocument_TextCharFormats(mockGUI):
assert cFmt.fontItalic() is False assert cFmt.fontItalic() is False
# 3: Deleted # 3: Deleted
block = qdoc.document.findBlockByNumber(3) block = doc.document.findBlockByNumber(3)
assert block.text() == "With deleted text" assert block.text() == "With deleted text"
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.fontStrikeOut() is False assert cFmt.fontStrikeOut() is False
@@ -505,7 +504,7 @@ def testFmtToQTextDocument_TextCharFormats(mockGUI):
assert cFmt.fontStrikeOut() is False assert cFmt.fontStrikeOut() is False
# 4: Underlined # 4: Underlined
block = qdoc.document.findBlockByNumber(4) block = doc.document.findBlockByNumber(4)
assert block.text() == "With underlined text" assert block.text() == "With underlined text"
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.fontUnderline() is False assert cFmt.fontUnderline() is False
@@ -515,7 +514,7 @@ def testFmtToQTextDocument_TextCharFormats(mockGUI):
assert cFmt.fontUnderline() is False assert cFmt.fontUnderline() is False
# 5: Highlighted # 5: Highlighted
block = qdoc.document.findBlockByNumber(5) block = doc.document.findBlockByNumber(5)
assert block.text() == "With highlighted text" assert block.text() == "With highlighted text"
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.background() == QtTransparent assert cFmt.background() == QtTransparent
@@ -525,7 +524,7 @@ def testFmtToQTextDocument_TextCharFormats(mockGUI):
assert cFmt.background() == QtTransparent assert cFmt.background() == QtTransparent
# 6: Superscript # 6: Superscript
block = qdoc.document.findBlockByNumber(6) block = doc.document.findBlockByNumber(6)
assert block.text() == "With superscript text" assert block.text() == "With superscript text"
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.verticalAlignment() == QtVAlignNormal assert cFmt.verticalAlignment() == QtVAlignNormal
@@ -535,7 +534,7 @@ def testFmtToQTextDocument_TextCharFormats(mockGUI):
assert cFmt.verticalAlignment() == QtVAlignNormal assert cFmt.verticalAlignment() == QtVAlignNormal
# 7: Subscript # 7: Subscript
block = qdoc.document.findBlockByNumber(7) block = doc.document.findBlockByNumber(7)
assert block.text() == "With subscript text" assert block.text() == "With subscript text"
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.verticalAlignment() == QtVAlignNormal assert cFmt.verticalAlignment() == QtVAlignNormal
@@ -545,7 +544,7 @@ def testFmtToQTextDocument_TextCharFormats(mockGUI):
assert cFmt.verticalAlignment() == QtVAlignNormal assert cFmt.verticalAlignment() == QtVAlignNormal
# 8: Dialogue # 8: Dialogue
block = qdoc.document.findBlockByNumber(8) block = doc.document.findBlockByNumber(8)
assert block.text() == "With \u201cdialog\u201d text" assert block.text() == "With \u201cdialog\u201d text"
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.foreground() == THEME.text assert cFmt.foreground() == THEME.text
@@ -555,7 +554,7 @@ def testFmtToQTextDocument_TextCharFormats(mockGUI):
assert cFmt.foreground() == THEME.text assert cFmt.foreground() == THEME.text
# 9: Alt. Dialogue # 9: Alt. Dialogue
block = qdoc.document.findBlockByNumber(9) block = doc.document.findBlockByNumber(9)
assert block.text() == "With |<alternative dialog>| text" assert block.text() == "With |<alternative dialog>| text"
cFmt = charFmtInBlock(block, 1) cFmt = charFmtInBlock(block, 1)
assert cFmt.foreground() == THEME.text assert cFmt.foreground() == THEME.text
@@ -569,34 +568,34 @@ def testFmtToQTextDocument_TextCharFormats(mockGUI):
def testFmtToQTextDocument_Footnotes(mockGUI): def testFmtToQTextDocument_Footnotes(mockGUI):
"""Test footnotes in the ToQTextDocument class.""" """Test footnotes in the ToQTextDocument class."""
project = NWProject() project = NWProject()
qdoc = ToQTextDocument(project) doc = ToQTextDocument(project)
qdoc.initDocument() doc.initDocument()
qdoc._isNovel = True doc._isNovel = True
qdoc._isFirst = True doc._isFirst = True
qdoc._text = ( doc._text = (
"### Scene\n\n" "### Scene\n\n"
"Text with valid[footnote:fn1] and invalid[footnote:fn2] footnotes.\n\n" "Text with valid[footnote:fn1] and invalid[footnote:fn2] footnotes.\n\n"
"%Footnote.fn1: Here's the first note.\n\n" "%Footnote.fn1: Here's the first note.\n\n"
) )
qdoc.tokenizeText() doc.tokenizeText()
qdoc.doConvert() doc.doConvert()
qdoc.appendFootnotes() doc.appendFootnotes()
assert qdoc.document.blockCount() == 4 assert doc.document.blockCount() == 4
# 0: Scene # 0: Scene
block = qdoc.document.findBlockByNumber(0) block = doc.document.findBlockByNumber(0)
assert block.text() == "Scene" assert block.text() == "Scene"
# 1: Text # 1: Text
block = qdoc.document.findBlockByNumber(1) block = doc.document.findBlockByNumber(1)
assert block.text() == "Text with valid[1] and invalid[ERR] footnotes." assert block.text() == "Text with valid[1] and invalid[ERR] footnotes."
# 2: Footnotes # 2: Footnotes
block = qdoc.document.findBlockByNumber(2) block = doc.document.findBlockByNumber(2)
assert block.text() == "Footnotes" assert block.text() == "Footnotes"
# 3: Footnote 1 # 3: Footnote 1
block = qdoc.document.findBlockByNumber(3) block = doc.document.findBlockByNumber(3)
assert block.text() == "1. Here's the first note." assert block.text() == "1. Here's the first note."