fix: align and shorten tutorial introduction paragraphs
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
"""Replay tutorial introduction through the deployed engine's layout routine."""
|
||||
import json
|
||||
from pathlib import Path
|
||||
import unittest
|
||||
from script_text import patch_display_calls
|
||||
from test_cjk_layout import layout
|
||||
|
||||
|
||||
class IntroTests(unittest.TestCase):
|
||||
def test_intro_paragraphs_are_left_aligned_without_orphan_punctuation(self):
|
||||
mapping = json.loads(Path(__file__).with_name('tutorial_cn.json').read_text(encoding='utf-8'))
|
||||
intros = [v for k, v in mapping.items() if k.startswith('\fNow')]
|
||||
self.assertEqual(len(intros), 2)
|
||||
for intro in intros:
|
||||
for width in (360, 400, 480):
|
||||
lines, _ = layout(intro, width=width, alignment=0)
|
||||
for raw, x, y in lines:
|
||||
self.assertEqual(x, 0)
|
||||
self.assertNotIn(raw.decode('gb2312')[0], ',。!?、;:”)')
|
||||
self.assertEqual(len(lines), 4)
|
||||
|
||||
def test_alignment_override_is_explicit_and_preserves_newlines(self):
|
||||
source = b'SetMissionDescription("\\fA\\n\\aB");'
|
||||
mapping = {'\fA\n\aB': '\bA\n\bB'}
|
||||
with self.assertRaises(ValueError):
|
||||
patch_display_calls(source, mapping)
|
||||
self.assertEqual(patch_display_calls(source, mapping, allow_alignment_changes=True),
|
||||
b'SetMissionDescription("\\bA\\n\\bB");')
|
||||
with self.assertRaises(ValueError):
|
||||
patch_display_calls(source, {'\fA\n\aB': '\bA\bB'}, allow_alignment_changes=True)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user