aboutsummaryrefslogtreecommitdiff
path: root/Tests/ttLib/ttFont_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/ttLib/ttFont_test.py')
-rw-r--r--Tests/ttLib/ttFont_test.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/Tests/ttLib/ttFont_test.py b/Tests/ttLib/ttFont_test.py
new file mode 100644
index 00000000..47cedeb7
--- /dev/null
+++ b/Tests/ttLib/ttFont_test.py
@@ -0,0 +1,48 @@
+import io
+from fontTools.ttLib import TTFont, newTable, registerCustomTableClass, unregisterCustomTableClass
+from fontTools.ttLib.tables.DefaultTable import DefaultTable
+
+
+class CustomTableClass(DefaultTable):
+
+ def decompile(self, data, ttFont):
+ self.numbers = list(data)
+
+ def compile(self, ttFont):
+ return bytes(self.numbers)
+
+ # not testing XML read/write
+
+
+table_C_U_S_T_ = CustomTableClass # alias for testing
+
+
+TABLETAG = "CUST"
+
+
+def test_registerCustomTableClass():
+ font = TTFont()
+ font[TABLETAG] = newTable(TABLETAG)
+ font[TABLETAG].data = b"\x00\x01\xff"
+ f = io.BytesIO()
+ font.save(f)
+ f.seek(0)
+ assert font[TABLETAG].data == b"\x00\x01\xff"
+ registerCustomTableClass(TABLETAG, "ttFont_test", "CustomTableClass")
+ try:
+ font = TTFont(f)
+ assert font[TABLETAG].numbers == [0, 1, 255]
+ assert font[TABLETAG].compile(font) == b"\x00\x01\xff"
+ finally:
+ unregisterCustomTableClass(TABLETAG)
+
+
+def test_registerCustomTableClassStandardName():
+ registerCustomTableClass(TABLETAG, "ttFont_test")
+ try:
+ font = TTFont()
+ font[TABLETAG] = newTable(TABLETAG)
+ font[TABLETAG].numbers = [4, 5, 6]
+ assert font[TABLETAG].compile(font) == b"\x04\x05\x06"
+ finally:
+ unregisterCustomTableClass(TABLETAG)