fonttools/Tests/ttLib/tables/_l_t_a_g_test.py

63 lines
1.8 KiB
Python
Raw Normal View History

from fontTools.misc.testTools import parseXML
from fontTools.misc.xmlWriter import XMLWriter
from io import BytesIO
import os
import struct
import unittest
from fontTools.ttLib import newTable
class Test_l_t_a_g(unittest.TestCase):
DATA_ = struct.pack(b">LLLHHHHHH", 1, 0, 3, 24 + 0, 2, 24 + 2, 7, 24 + 2, 2) + b"enzh-Hant"
TAGS_ = ["en", "zh-Hant", "zh"]
def test_addTag(self):
table = newTable("ltag")
self.assertEqual(table.addTag("de-CH"), 0)
self.assertEqual(table.addTag("gsw-LI"), 1)
self.assertEqual(table.addTag("de-CH"), 0)
self.assertEqual(table.tags, ["de-CH", "gsw-LI"])
def test_decompile_compile(self):
table = newTable("ltag")
table.decompile(self.DATA_, ttFont=None)
self.assertEqual(1, table.version)
self.assertEqual(0, table.flags)
self.assertEqual(self.TAGS_, table.tags)
compiled = table.compile(ttFont=None)
self.assertEqual(self.DATA_, compiled)
self.assertIsInstance(compiled, bytes)
def test_fromXML(self):
table = newTable("ltag")
for name, attrs, content in parseXML(
'<version value="1"/>'
'<flags value="777"/>'
'<LanguageTag tag="sr-Latn"/>'
'<LanguageTag tag="fa"/>'):
table.fromXML(name, attrs, content, ttFont=None)
self.assertEqual(1, table.version)
self.assertEqual(777, table.flags)
self.assertEqual(["sr-Latn", "fa"], table.tags)
def test_toXML(self):
2015-08-07 16:16:49 +01:00
writer = XMLWriter(BytesIO())
table = newTable("ltag")
table.decompile(self.DATA_, ttFont=None)
table.toXML(writer, ttFont=None)
expected = os.linesep.join([
'<?xml version="1.0" encoding="UTF-8"?>',
'<version value="1"/>',
'<flags value="0"/>',
'<LanguageTag tag="en"/>',
'<LanguageTag tag="zh-Hant"/>',
'<LanguageTag tag="zh"/>'
]) + os.linesep
self.assertEqual(expected.encode("utf_8"), writer.file.getvalue())
if __name__ == '__main__':
import sys
sys.exit(unittest.main())