Adding more unittests, based on feedback.

This commit is contained in:
Olli Meier 2022-02-10 17:11:26 +01:00
parent 6bf842a30e
commit 51eda21b0a
2 changed files with 43 additions and 0 deletions

View File

@ -1448,8 +1448,33 @@ def test_buildStatTable_name_duplicates():
builder.buildStatTable(font_obj, AXES, windowsNames=True, macNames=False)
actual_names = [x.string for x in font_obj["name"].names]
# no new name records were added by buildStatTable
# because windows-only names with the same strings were already present
assert expected_names == actual_names
font_obj["name"].removeNames(nameID=270)
expected_names = [x.string for x in font_obj["name"].names] + ['Weight']
builder.buildStatTable(font_obj, AXES, windowsNames=True, macNames=False)
actual_names = [x.string for x in font_obj["name"].names]
# One new name records 'Weight' were added by buildStatTable
assert expected_names == actual_names
builder.buildStatTable(font_obj, AXES, windowsNames=True, macNames=True)
actual_names = [x.string for x in font_obj["name"].names]
expected_names = ['Weight', 'Weight',
'ExtraLight', 'ExtraLight',
'Light', 'Light',
'Regular', 'Regular',
'Medium', 'Medium',
'Bold', 'Bold',
'ExtraBold', 'ExtraBold',
'Black', 'Black']
# Multiple name records were added by buildStatTable
assert expected_names == actual_names
def test_stat_infinities():
negInf = floatToFixed(builder.AXIS_VALUE_NEGATIVE_INFINITY, 16)

View File

@ -6,6 +6,7 @@ from fontTools.misc.xmlWriter import XMLWriter
from io import BytesIO
import struct
import unittest
from fontTools import ttLib
from fontTools.ttLib import newTable
from fontTools.ttLib.tables._n_a_m_e import (
table__n_a_m_e, NameRecord, nameRecordFormat, nameRecordSize, makeName, log)
@ -305,6 +306,23 @@ class NameTableTest(unittest.TestCase):
self.assertGreaterEqual(nameID, 256)
self.assertEqual(nameID, table.findMultilingualName(names, minNameID=256))
def test_addMultilingualName_no_mac_but_win(self):
'''
Test if addMultilingualName adds
a Mac name table entry equal to Windows entry.
'''
font_obj = ttLib.TTFont()
font_obj["name"] = ttLib.newTable("name")
font_obj["name"].names = []
font_obj["name"].setName('Weight', 270, 3, 1, 0x409)
names = {'en': 'Weight', }
nameID = font_obj["name"].addMultilingualName(names, minNameID=256)
self.assertEqual(270, nameID)
def test_decompile_badOffset(self):
# https://github.com/fonttools/fonttools/issues/525
table = table__n_a_m_e()