Merge pull request #382 from anthrotype/set_name

[name] add setName method to table__n_a_m_e
This commit is contained in:
Sascha Brawer 2015-10-01 14:17:40 +02:00
commit 0d0e087724
2 changed files with 30 additions and 0 deletions

View File

@ -111,6 +111,23 @@ class table__n_a_m_e(DefaultTable.DefaultTable):
else:
return None
def setName(self, string, nameID, platformID, platEncID, langID):
if not hasattr(self, 'names'):
self.names = []
namerecord = self.getName(nameID, platformID, platEncID, langID)
exists = False if namerecord is None else True
if not exists:
namerecord = NameRecord()
namerecord.nameID = nameID
namerecord.platformID = platformID
namerecord.platEncID = platEncID
namerecord.langID = langID
encoding = namerecord.getEncoding()
namerecord.string = string.encode(encoding)
if not exists:
self.names.append(namerecord)
class NameRecord(object):
def getEncoding(self, default='ascii'):

View File

@ -28,6 +28,19 @@ class NameTableTest(unittest.TestCase):
self.assertEqual("Sem Fracções", table.getDebugName(292))
self.assertEqual(None, table.getDebugName(999))
def test_setName(self):
table = table__n_a_m_e()
table.setName("Regular", 2, 1, 0, 0)
table.setName("Version 1.000", 5, 3, 1, 0x409)
table.setName("寬鬆", 276, 1, 2, 0x13)
self.assertEqual("Regular", table.getName(2, 1, 0, 0).toUnicode())
self.assertEqual("Version 1.000", table.getName(5, 3, 1, 0x409).toUnicode())
self.assertEqual("寬鬆", table.getName(276, 1, 2, 0x13).toUnicode())
self.assertTrue(len(table.names) == 3)
table.setName("緊縮", 276, 1, 2, 0x13)
self.assertEqual("緊縮", table.getName(276, 1, 2, 0x13).toUnicode())
self.assertTrue(len(table.names) == 3)
class NameRecordTest(unittest.TestCase):