diff options
Diffstat (limited to 'Tests/ufoLib/UFO2_test.py')
-rw-r--r-- | Tests/ufoLib/UFO2_test.py | 2946 |
1 files changed, 1573 insertions, 1373 deletions
diff --git a/Tests/ufoLib/UFO2_test.py b/Tests/ufoLib/UFO2_test.py index 68b4bafd..ccd20388 100644 --- a/Tests/ufoLib/UFO2_test.py +++ b/Tests/ufoLib/UFO2_test.py @@ -8,1405 +8,1605 @@ from fontTools.ufoLib import plistlib from .testSupport import fontInfoVersion2 -class TestInfoObject: pass +class TestInfoObject: + pass class ReadFontInfoVersion2TestCase(unittest.TestCase): + def setUp(self): + self.dstDir = tempfile.mktemp() + os.mkdir(self.dstDir) + metaInfo = {"creator": "test", "formatVersion": 2} + path = os.path.join(self.dstDir, "metainfo.plist") + with open(path, "wb") as f: + plistlib.dump(metaInfo, f) - def setUp(self): - self.dstDir = tempfile.mktemp() - os.mkdir(self.dstDir) - metaInfo = { - "creator": "test", - "formatVersion": 2 - } - path = os.path.join(self.dstDir, "metainfo.plist") - with open(path, "wb") as f: - plistlib.dump(metaInfo, f) + def tearDown(self): + shutil.rmtree(self.dstDir) - def tearDown(self): - shutil.rmtree(self.dstDir) + def _writeInfoToPlist(self, info): + path = os.path.join(self.dstDir, "fontinfo.plist") + with open(path, "wb") as f: + plistlib.dump(info, f) - def _writeInfoToPlist(self, info): - path = os.path.join(self.dstDir, "fontinfo.plist") - with open(path, "wb") as f: - plistlib.dump(info, f) + def testRead(self): + originalData = dict(fontInfoVersion2) + self._writeInfoToPlist(originalData) + infoObject = TestInfoObject() + reader = UFOReader(self.dstDir, validate=True) + reader.readInfo(infoObject) + readData = {} + for attr in list(fontInfoVersion2.keys()): + readData[attr] = getattr(infoObject, attr) + self.assertEqual(originalData, readData) - def testRead(self): - originalData = dict(fontInfoVersion2) - self._writeInfoToPlist(originalData) - infoObject = TestInfoObject() - reader = UFOReader(self.dstDir, validate=True) - reader.readInfo(infoObject) - readData = {} - for attr in list(fontInfoVersion2.keys()): - readData[attr] = getattr(infoObject, attr) - self.assertEqual(originalData, readData) + def testGenericRead(self): + # familyName + info = dict(fontInfoVersion2) + info["familyName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # styleName + info = dict(fontInfoVersion2) + info["styleName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # styleMapFamilyName + info = dict(fontInfoVersion2) + info["styleMapFamilyName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # styleMapStyleName + ## not a string + info = dict(fontInfoVersion2) + info["styleMapStyleName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## out of range + info = dict(fontInfoVersion2) + info["styleMapStyleName"] = "REGULAR" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # versionMajor + info = dict(fontInfoVersion2) + info["versionMajor"] = "1" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # versionMinor + info = dict(fontInfoVersion2) + info["versionMinor"] = "0" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # copyright + info = dict(fontInfoVersion2) + info["copyright"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # trademark + info = dict(fontInfoVersion2) + info["trademark"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # unitsPerEm + info = dict(fontInfoVersion2) + info["unitsPerEm"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # descender + info = dict(fontInfoVersion2) + info["descender"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # xHeight + info = dict(fontInfoVersion2) + info["xHeight"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # capHeight + info = dict(fontInfoVersion2) + info["capHeight"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # ascender + info = dict(fontInfoVersion2) + info["ascender"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # italicAngle + info = dict(fontInfoVersion2) + info["italicAngle"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - def testGenericRead(self): - # familyName - info = dict(fontInfoVersion2) - info["familyName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # styleName - info = dict(fontInfoVersion2) - info["styleName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # styleMapFamilyName - info = dict(fontInfoVersion2) - info["styleMapFamilyName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # styleMapStyleName - ## not a string - info = dict(fontInfoVersion2) - info["styleMapStyleName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## out of range - info = dict(fontInfoVersion2) - info["styleMapStyleName"] = "REGULAR" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # versionMajor - info = dict(fontInfoVersion2) - info["versionMajor"] = "1" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # versionMinor - info = dict(fontInfoVersion2) - info["versionMinor"] = "0" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # copyright - info = dict(fontInfoVersion2) - info["copyright"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # trademark - info = dict(fontInfoVersion2) - info["trademark"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # unitsPerEm - info = dict(fontInfoVersion2) - info["unitsPerEm"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # descender - info = dict(fontInfoVersion2) - info["descender"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # xHeight - info = dict(fontInfoVersion2) - info["xHeight"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # capHeight - info = dict(fontInfoVersion2) - info["capHeight"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # ascender - info = dict(fontInfoVersion2) - info["ascender"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # italicAngle - info = dict(fontInfoVersion2) - info["italicAngle"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + def testHeadRead(self): + # openTypeHeadCreated + ## not a string + info = dict(fontInfoVersion2) + info["openTypeHeadCreated"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## invalid format + info = dict(fontInfoVersion2) + info["openTypeHeadCreated"] = "2000-Jan-01 00:00:00" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeHeadLowestRecPPEM + info = dict(fontInfoVersion2) + info["openTypeHeadLowestRecPPEM"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeHeadFlags + info = dict(fontInfoVersion2) + info["openTypeHeadFlags"] = [-1] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - def testHeadRead(self): - # openTypeHeadCreated - ## not a string - info = dict(fontInfoVersion2) - info["openTypeHeadCreated"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## invalid format - info = dict(fontInfoVersion2) - info["openTypeHeadCreated"] = "2000-Jan-01 00:00:00" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeHeadLowestRecPPEM - info = dict(fontInfoVersion2) - info["openTypeHeadLowestRecPPEM"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeHeadFlags - info = dict(fontInfoVersion2) - info["openTypeHeadFlags"] = [-1] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + def testHheaRead(self): + # openTypeHheaAscender + info = dict(fontInfoVersion2) + info["openTypeHheaAscender"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeHheaDescender + info = dict(fontInfoVersion2) + info["openTypeHheaDescender"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeHheaLineGap + info = dict(fontInfoVersion2) + info["openTypeHheaLineGap"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeHheaCaretSlopeRise + info = dict(fontInfoVersion2) + info["openTypeHheaCaretSlopeRise"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeHheaCaretSlopeRun + info = dict(fontInfoVersion2) + info["openTypeHheaCaretSlopeRun"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeHheaCaretOffset + info = dict(fontInfoVersion2) + info["openTypeHheaCaretOffset"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - def testHheaRead(self): - # openTypeHheaAscender - info = dict(fontInfoVersion2) - info["openTypeHheaAscender"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeHheaDescender - info = dict(fontInfoVersion2) - info["openTypeHheaDescender"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeHheaLineGap - info = dict(fontInfoVersion2) - info["openTypeHheaLineGap"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeHheaCaretSlopeRise - info = dict(fontInfoVersion2) - info["openTypeHheaCaretSlopeRise"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeHheaCaretSlopeRun - info = dict(fontInfoVersion2) - info["openTypeHheaCaretSlopeRun"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeHheaCaretOffset - info = dict(fontInfoVersion2) - info["openTypeHheaCaretOffset"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + def testNameRead(self): + # openTypeNameDesigner + info = dict(fontInfoVersion2) + info["openTypeNameDesigner"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameDesignerURL + info = dict(fontInfoVersion2) + info["openTypeNameDesignerURL"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameManufacturer + info = dict(fontInfoVersion2) + info["openTypeNameManufacturer"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameManufacturerURL + info = dict(fontInfoVersion2) + info["openTypeNameManufacturerURL"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameLicense + info = dict(fontInfoVersion2) + info["openTypeNameLicense"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameLicenseURL + info = dict(fontInfoVersion2) + info["openTypeNameLicenseURL"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameVersion + info = dict(fontInfoVersion2) + info["openTypeNameVersion"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameUniqueID + info = dict(fontInfoVersion2) + info["openTypeNameUniqueID"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameDescription + info = dict(fontInfoVersion2) + info["openTypeNameDescription"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNamePreferredFamilyName + info = dict(fontInfoVersion2) + info["openTypeNamePreferredFamilyName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNamePreferredSubfamilyName + info = dict(fontInfoVersion2) + info["openTypeNamePreferredSubfamilyName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameCompatibleFullName + info = dict(fontInfoVersion2) + info["openTypeNameCompatibleFullName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameSampleText + info = dict(fontInfoVersion2) + info["openTypeNameSampleText"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameWWSFamilyName + info = dict(fontInfoVersion2) + info["openTypeNameWWSFamilyName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeNameWWSSubfamilyName + info = dict(fontInfoVersion2) + info["openTypeNameWWSSubfamilyName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - def testNameRead(self): - # openTypeNameDesigner - info = dict(fontInfoVersion2) - info["openTypeNameDesigner"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameDesignerURL - info = dict(fontInfoVersion2) - info["openTypeNameDesignerURL"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameManufacturer - info = dict(fontInfoVersion2) - info["openTypeNameManufacturer"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameManufacturerURL - info = dict(fontInfoVersion2) - info["openTypeNameManufacturerURL"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameLicense - info = dict(fontInfoVersion2) - info["openTypeNameLicense"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameLicenseURL - info = dict(fontInfoVersion2) - info["openTypeNameLicenseURL"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameVersion - info = dict(fontInfoVersion2) - info["openTypeNameVersion"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameUniqueID - info = dict(fontInfoVersion2) - info["openTypeNameUniqueID"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameDescription - info = dict(fontInfoVersion2) - info["openTypeNameDescription"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNamePreferredFamilyName - info = dict(fontInfoVersion2) - info["openTypeNamePreferredFamilyName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNamePreferredSubfamilyName - info = dict(fontInfoVersion2) - info["openTypeNamePreferredSubfamilyName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameCompatibleFullName - info = dict(fontInfoVersion2) - info["openTypeNameCompatibleFullName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameSampleText - info = dict(fontInfoVersion2) - info["openTypeNameSampleText"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameWWSFamilyName - info = dict(fontInfoVersion2) - info["openTypeNameWWSFamilyName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeNameWWSSubfamilyName - info = dict(fontInfoVersion2) - info["openTypeNameWWSSubfamilyName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + def testOS2Read(self): + # openTypeOS2WidthClass + ## not an int + info = dict(fontInfoVersion2) + info["openTypeOS2WidthClass"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## out or range + info = dict(fontInfoVersion2) + info["openTypeOS2WidthClass"] = 15 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2WeightClass + info = dict(fontInfoVersion2) + ## not an int + info["openTypeOS2WeightClass"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## out of range + info["openTypeOS2WeightClass"] = -50 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2Selection + info = dict(fontInfoVersion2) + info["openTypeOS2Selection"] = [-1] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2VendorID + info = dict(fontInfoVersion2) + info["openTypeOS2VendorID"] = 1234 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2Panose + ## not an int + info = dict(fontInfoVersion2) + info["openTypeOS2Panose"] = [0, 1, 2, 3, 4, 5, 6, 7, 8, str(9)] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## too few values + info = dict(fontInfoVersion2) + info["openTypeOS2Panose"] = [0, 1, 2, 3] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## too many values + info = dict(fontInfoVersion2) + info["openTypeOS2Panose"] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2FamilyClass + ## not an int + info = dict(fontInfoVersion2) + info["openTypeOS2FamilyClass"] = [1, str(1)] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## too few values + info = dict(fontInfoVersion2) + info["openTypeOS2FamilyClass"] = [1] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## too many values + info = dict(fontInfoVersion2) + info["openTypeOS2FamilyClass"] = [1, 1, 1] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## out of range + info = dict(fontInfoVersion2) + info["openTypeOS2FamilyClass"] = [1, 201] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2UnicodeRanges + ## not an int + info = dict(fontInfoVersion2) + info["openTypeOS2UnicodeRanges"] = ["0"] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## out of range + info = dict(fontInfoVersion2) + info["openTypeOS2UnicodeRanges"] = [-1] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2CodePageRanges + ## not an int + info = dict(fontInfoVersion2) + info["openTypeOS2CodePageRanges"] = ["0"] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## out of range + info = dict(fontInfoVersion2) + info["openTypeOS2CodePageRanges"] = [-1] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2TypoAscender + info = dict(fontInfoVersion2) + info["openTypeOS2TypoAscender"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2TypoDescender + info = dict(fontInfoVersion2) + info["openTypeOS2TypoDescender"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2TypoLineGap + info = dict(fontInfoVersion2) + info["openTypeOS2TypoLineGap"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2WinAscent + info = dict(fontInfoVersion2) + info["openTypeOS2WinAscent"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2WinDescent + info = dict(fontInfoVersion2) + info["openTypeOS2WinDescent"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2Type + ## not an int + info = dict(fontInfoVersion2) + info["openTypeOS2Type"] = ["1"] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + ## out of range + info = dict(fontInfoVersion2) + info["openTypeOS2Type"] = [-1] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2SubscriptXSize + info = dict(fontInfoVersion2) + info["openTypeOS2SubscriptXSize"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2SubscriptYSize + info = dict(fontInfoVersion2) + info["openTypeOS2SubscriptYSize"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2SubscriptXOffset + info = dict(fontInfoVersion2) + info["openTypeOS2SubscriptXOffset"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2SubscriptYOffset + info = dict(fontInfoVersion2) + info["openTypeOS2SubscriptYOffset"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2SuperscriptXSize + info = dict(fontInfoVersion2) + info["openTypeOS2SuperscriptXSize"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2SuperscriptYSize + info = dict(fontInfoVersion2) + info["openTypeOS2SuperscriptYSize"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2SuperscriptXOffset + info = dict(fontInfoVersion2) + info["openTypeOS2SuperscriptXOffset"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2SuperscriptYOffset + info = dict(fontInfoVersion2) + info["openTypeOS2SuperscriptYOffset"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2StrikeoutSize + info = dict(fontInfoVersion2) + info["openTypeOS2StrikeoutSize"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeOS2StrikeoutPosition + info = dict(fontInfoVersion2) + info["openTypeOS2StrikeoutPosition"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - def testOS2Read(self): - # openTypeOS2WidthClass - ## not an int - info = dict(fontInfoVersion2) - info["openTypeOS2WidthClass"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## out or range - info = dict(fontInfoVersion2) - info["openTypeOS2WidthClass"] = 15 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2WeightClass - info = dict(fontInfoVersion2) - ## not an int - info["openTypeOS2WeightClass"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## out of range - info["openTypeOS2WeightClass"] = -50 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2Selection - info = dict(fontInfoVersion2) - info["openTypeOS2Selection"] = [-1] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2VendorID - info = dict(fontInfoVersion2) - info["openTypeOS2VendorID"] = 1234 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2Panose - ## not an int - info = dict(fontInfoVersion2) - info["openTypeOS2Panose"] = [0, 1, 2, 3, 4, 5, 6, 7, 8, str(9)] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## too few values - info = dict(fontInfoVersion2) - info["openTypeOS2Panose"] = [0, 1, 2, 3] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## too many values - info = dict(fontInfoVersion2) - info["openTypeOS2Panose"] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2FamilyClass - ## not an int - info = dict(fontInfoVersion2) - info["openTypeOS2FamilyClass"] = [1, str(1)] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## too few values - info = dict(fontInfoVersion2) - info["openTypeOS2FamilyClass"] = [1] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## too many values - info = dict(fontInfoVersion2) - info["openTypeOS2FamilyClass"] = [1, 1, 1] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## out of range - info = dict(fontInfoVersion2) - info["openTypeOS2FamilyClass"] = [1, 201] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2UnicodeRanges - ## not an int - info = dict(fontInfoVersion2) - info["openTypeOS2UnicodeRanges"] = ["0"] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## out of range - info = dict(fontInfoVersion2) - info["openTypeOS2UnicodeRanges"] = [-1] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2CodePageRanges - ## not an int - info = dict(fontInfoVersion2) - info["openTypeOS2CodePageRanges"] = ["0"] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## out of range - info = dict(fontInfoVersion2) - info["openTypeOS2CodePageRanges"] = [-1] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2TypoAscender - info = dict(fontInfoVersion2) - info["openTypeOS2TypoAscender"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2TypoDescender - info = dict(fontInfoVersion2) - info["openTypeOS2TypoDescender"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2TypoLineGap - info = dict(fontInfoVersion2) - info["openTypeOS2TypoLineGap"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2WinAscent - info = dict(fontInfoVersion2) - info["openTypeOS2WinAscent"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2WinDescent - info = dict(fontInfoVersion2) - info["openTypeOS2WinDescent"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2Type - ## not an int - info = dict(fontInfoVersion2) - info["openTypeOS2Type"] = ["1"] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - ## out of range - info = dict(fontInfoVersion2) - info["openTypeOS2Type"] = [-1] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2SubscriptXSize - info = dict(fontInfoVersion2) - info["openTypeOS2SubscriptXSize"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2SubscriptYSize - info = dict(fontInfoVersion2) - info["openTypeOS2SubscriptYSize"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2SubscriptXOffset - info = dict(fontInfoVersion2) - info["openTypeOS2SubscriptXOffset"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2SubscriptYOffset - info = dict(fontInfoVersion2) - info["openTypeOS2SubscriptYOffset"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2SuperscriptXSize - info = dict(fontInfoVersion2) - info["openTypeOS2SuperscriptXSize"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2SuperscriptYSize - info = dict(fontInfoVersion2) - info["openTypeOS2SuperscriptYSize"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2SuperscriptXOffset - info = dict(fontInfoVersion2) - info["openTypeOS2SuperscriptXOffset"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2SuperscriptYOffset - info = dict(fontInfoVersion2) - info["openTypeOS2SuperscriptYOffset"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2StrikeoutSize - info = dict(fontInfoVersion2) - info["openTypeOS2StrikeoutSize"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeOS2StrikeoutPosition - info = dict(fontInfoVersion2) - info["openTypeOS2StrikeoutPosition"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + def testVheaRead(self): + # openTypeVheaVertTypoAscender + info = dict(fontInfoVersion2) + info["openTypeVheaVertTypoAscender"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeVheaVertTypoDescender + info = dict(fontInfoVersion2) + info["openTypeVheaVertTypoDescender"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeVheaVertTypoLineGap + info = dict(fontInfoVersion2) + info["openTypeVheaVertTypoLineGap"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeVheaCaretSlopeRise + info = dict(fontInfoVersion2) + info["openTypeVheaCaretSlopeRise"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeVheaCaretSlopeRun + info = dict(fontInfoVersion2) + info["openTypeVheaCaretSlopeRun"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # openTypeVheaCaretOffset + info = dict(fontInfoVersion2) + info["openTypeVheaCaretOffset"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - def testVheaRead(self): - # openTypeVheaVertTypoAscender - info = dict(fontInfoVersion2) - info["openTypeVheaVertTypoAscender"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeVheaVertTypoDescender - info = dict(fontInfoVersion2) - info["openTypeVheaVertTypoDescender"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeVheaVertTypoLineGap - info = dict(fontInfoVersion2) - info["openTypeVheaVertTypoLineGap"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeVheaCaretSlopeRise - info = dict(fontInfoVersion2) - info["openTypeVheaCaretSlopeRise"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeVheaCaretSlopeRun - info = dict(fontInfoVersion2) - info["openTypeVheaCaretSlopeRun"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # openTypeVheaCaretOffset - info = dict(fontInfoVersion2) - info["openTypeVheaCaretOffset"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + def testFONDRead(self): + # macintoshFONDFamilyID + info = dict(fontInfoVersion2) + info["macintoshFONDFamilyID"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # macintoshFONDName + info = dict(fontInfoVersion2) + info["macintoshFONDName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - def testFONDRead(self): - # macintoshFONDFamilyID - info = dict(fontInfoVersion2) - info["macintoshFONDFamilyID"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # macintoshFONDName - info = dict(fontInfoVersion2) - info["macintoshFONDName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - - def testPostscriptRead(self): - # postscriptFontName - info = dict(fontInfoVersion2) - info["postscriptFontName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # postscriptFullName - info = dict(fontInfoVersion2) - info["postscriptFullName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # postscriptSlantAngle - info = dict(fontInfoVersion2) - info["postscriptSlantAngle"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) - # postscriptUniqueID - info = dict(fontInfoVersion2) - info["postscriptUniqueID"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptUnderlineThickness - info = dict(fontInfoVersion2) - info["postscriptUnderlineThickness"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptUnderlinePosition - info = dict(fontInfoVersion2) - info["postscriptUnderlinePosition"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptIsFixedPitch - info = dict(fontInfoVersion2) - info["postscriptIsFixedPitch"] = 2 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptBlueValues - ## not a list - info = dict(fontInfoVersion2) - info["postscriptBlueValues"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - ## uneven value count - info = dict(fontInfoVersion2) - info["postscriptBlueValues"] = [500] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - ## too many values - info = dict(fontInfoVersion2) - info["postscriptBlueValues"] = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptOtherBlues - ## not a list - info = dict(fontInfoVersion2) - info["postscriptOtherBlues"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - ## uneven value count - info = dict(fontInfoVersion2) - info["postscriptOtherBlues"] = [500] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - ## too many values - info = dict(fontInfoVersion2) - info["postscriptOtherBlues"] = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptFamilyBlues - ## not a list - info = dict(fontInfoVersion2) - info["postscriptFamilyBlues"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - ## uneven value count - info = dict(fontInfoVersion2) - info["postscriptFamilyBlues"] = [500] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - ## too many values - info = dict(fontInfoVersion2) - info["postscriptFamilyBlues"] = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptFamilyOtherBlues - ## not a list - info = dict(fontInfoVersion2) - info["postscriptFamilyOtherBlues"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - ## uneven value count - info = dict(fontInfoVersion2) - info["postscriptFamilyOtherBlues"] = [500] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - ## too many values - info = dict(fontInfoVersion2) - info["postscriptFamilyOtherBlues"] = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptStemSnapH - ## not list - info = dict(fontInfoVersion2) - info["postscriptStemSnapH"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - ## too many values - info = dict(fontInfoVersion2) - info["postscriptStemSnapH"] = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptStemSnapV - ## not list - info = dict(fontInfoVersion2) - info["postscriptStemSnapV"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - ## too many values - info = dict(fontInfoVersion2) - info["postscriptStemSnapV"] = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptBlueFuzz - info = dict(fontInfoVersion2) - info["postscriptBlueFuzz"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptBlueShift - info = dict(fontInfoVersion2) - info["postscriptBlueShift"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptBlueScale - info = dict(fontInfoVersion2) - info["postscriptBlueScale"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptForceBold - info = dict(fontInfoVersion2) - info["postscriptForceBold"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptDefaultWidthX - info = dict(fontInfoVersion2) - info["postscriptDefaultWidthX"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptNominalWidthX - info = dict(fontInfoVersion2) - info["postscriptNominalWidthX"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptWeightName - info = dict(fontInfoVersion2) - info["postscriptWeightName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptDefaultCharacter - info = dict(fontInfoVersion2) - info["postscriptDefaultCharacter"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # postscriptWindowsCharacterSet - info = dict(fontInfoVersion2) - info["postscriptWindowsCharacterSet"] = -1 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # macintoshFONDFamilyID - info = dict(fontInfoVersion2) - info["macintoshFONDFamilyID"] = "abc" - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) - # macintoshFONDName - info = dict(fontInfoVersion2) - info["macintoshFONDName"] = 123 - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + def testPostscriptRead(self): + # postscriptFontName + info = dict(fontInfoVersion2) + info["postscriptFontName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # postscriptFullName + info = dict(fontInfoVersion2) + info["postscriptFullName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # postscriptSlantAngle + info = dict(fontInfoVersion2) + info["postscriptSlantAngle"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject()) + # postscriptUniqueID + info = dict(fontInfoVersion2) + info["postscriptUniqueID"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptUnderlineThickness + info = dict(fontInfoVersion2) + info["postscriptUnderlineThickness"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptUnderlinePosition + info = dict(fontInfoVersion2) + info["postscriptUnderlinePosition"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptIsFixedPitch + info = dict(fontInfoVersion2) + info["postscriptIsFixedPitch"] = 2 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptBlueValues + ## not a list + info = dict(fontInfoVersion2) + info["postscriptBlueValues"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + ## uneven value count + info = dict(fontInfoVersion2) + info["postscriptBlueValues"] = [500] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + ## too many values + info = dict(fontInfoVersion2) + info["postscriptBlueValues"] = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptOtherBlues + ## not a list + info = dict(fontInfoVersion2) + info["postscriptOtherBlues"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + ## uneven value count + info = dict(fontInfoVersion2) + info["postscriptOtherBlues"] = [500] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + ## too many values + info = dict(fontInfoVersion2) + info["postscriptOtherBlues"] = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptFamilyBlues + ## not a list + info = dict(fontInfoVersion2) + info["postscriptFamilyBlues"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + ## uneven value count + info = dict(fontInfoVersion2) + info["postscriptFamilyBlues"] = [500] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + ## too many values + info = dict(fontInfoVersion2) + info["postscriptFamilyBlues"] = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptFamilyOtherBlues + ## not a list + info = dict(fontInfoVersion2) + info["postscriptFamilyOtherBlues"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + ## uneven value count + info = dict(fontInfoVersion2) + info["postscriptFamilyOtherBlues"] = [500] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + ## too many values + info = dict(fontInfoVersion2) + info["postscriptFamilyOtherBlues"] = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptStemSnapH + ## not list + info = dict(fontInfoVersion2) + info["postscriptStemSnapH"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + ## too many values + info = dict(fontInfoVersion2) + info["postscriptStemSnapH"] = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptStemSnapV + ## not list + info = dict(fontInfoVersion2) + info["postscriptStemSnapV"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + ## too many values + info = dict(fontInfoVersion2) + info["postscriptStemSnapV"] = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptBlueFuzz + info = dict(fontInfoVersion2) + info["postscriptBlueFuzz"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptBlueShift + info = dict(fontInfoVersion2) + info["postscriptBlueShift"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptBlueScale + info = dict(fontInfoVersion2) + info["postscriptBlueScale"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptForceBold + info = dict(fontInfoVersion2) + info["postscriptForceBold"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptDefaultWidthX + info = dict(fontInfoVersion2) + info["postscriptDefaultWidthX"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptNominalWidthX + info = dict(fontInfoVersion2) + info["postscriptNominalWidthX"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptWeightName + info = dict(fontInfoVersion2) + info["postscriptWeightName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptDefaultCharacter + info = dict(fontInfoVersion2) + info["postscriptDefaultCharacter"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # postscriptWindowsCharacterSet + info = dict(fontInfoVersion2) + info["postscriptWindowsCharacterSet"] = -1 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # macintoshFONDFamilyID + info = dict(fontInfoVersion2) + info["macintoshFONDFamilyID"] = "abc" + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) + # macintoshFONDName + info = dict(fontInfoVersion2) + info["macintoshFONDName"] = 123 + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject()) class WriteFontInfoVersion2TestCase(unittest.TestCase): + def setUp(self): + self.tempDir = tempfile.mktemp() + os.mkdir(self.tempDir) + self.dstDir = os.path.join(self.tempDir, "test.ufo") - def setUp(self): - self.tempDir = tempfile.mktemp() - os.mkdir(self.tempDir) - self.dstDir = os.path.join(self.tempDir, "test.ufo") - - def tearDown(self): - shutil.rmtree(self.tempDir) + def tearDown(self): + shutil.rmtree(self.tempDir) - def makeInfoObject(self): - infoObject = TestInfoObject() - for attr, value in list(fontInfoVersion2.items()): - setattr(infoObject, attr, value) - return infoObject + def makeInfoObject(self): + infoObject = TestInfoObject() + for attr, value in list(fontInfoVersion2.items()): + setattr(infoObject, attr, value) + return infoObject - def readPlist(self): - path = os.path.join(self.dstDir, "fontinfo.plist") - with open(path, "rb") as f: - plist = plistlib.load(f) - return plist + def readPlist(self): + path = os.path.join(self.dstDir, "fontinfo.plist") + with open(path, "rb") as f: + plist = plistlib.load(f) + return plist - def testWrite(self): - infoObject = self.makeInfoObject() - writer = UFOWriter(self.dstDir, formatVersion=2) - writer.writeInfo(infoObject) - writtenData = self.readPlist() - for attr, originalValue in list(fontInfoVersion2.items()): - newValue = writtenData[attr] - self.assertEqual(newValue, originalValue) + def testWrite(self): + infoObject = self.makeInfoObject() + writer = UFOWriter(self.dstDir, formatVersion=2) + writer.writeInfo(infoObject) + writtenData = self.readPlist() + for attr, originalValue in list(fontInfoVersion2.items()): + newValue = writtenData[attr] + self.assertEqual(newValue, originalValue) - def testGenericWrite(self): - # familyName - infoObject = self.makeInfoObject() - infoObject.familyName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # styleName - infoObject = self.makeInfoObject() - infoObject.styleName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # styleMapFamilyName - infoObject = self.makeInfoObject() - infoObject.styleMapFamilyName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # styleMapStyleName - ## not a string - infoObject = self.makeInfoObject() - infoObject.styleMapStyleName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## out of range - infoObject = self.makeInfoObject() - infoObject.styleMapStyleName = "REGULAR" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # versionMajor - infoObject = self.makeInfoObject() - infoObject.versionMajor = "1" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # versionMinor - infoObject = self.makeInfoObject() - infoObject.versionMinor = "0" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # copyright - infoObject = self.makeInfoObject() - infoObject.copyright = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # trademark - infoObject = self.makeInfoObject() - infoObject.trademark = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # unitsPerEm - infoObject = self.makeInfoObject() - infoObject.unitsPerEm = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # descender - infoObject = self.makeInfoObject() - infoObject.descender = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # xHeight - infoObject = self.makeInfoObject() - infoObject.xHeight = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # capHeight - infoObject = self.makeInfoObject() - infoObject.capHeight = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # ascender - infoObject = self.makeInfoObject() - infoObject.ascender = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # italicAngle - infoObject = self.makeInfoObject() - infoObject.italicAngle = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + def testGenericWrite(self): + # familyName + infoObject = self.makeInfoObject() + infoObject.familyName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # styleName + infoObject = self.makeInfoObject() + infoObject.styleName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # styleMapFamilyName + infoObject = self.makeInfoObject() + infoObject.styleMapFamilyName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # styleMapStyleName + ## not a string + infoObject = self.makeInfoObject() + infoObject.styleMapStyleName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## out of range + infoObject = self.makeInfoObject() + infoObject.styleMapStyleName = "REGULAR" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # versionMajor + infoObject = self.makeInfoObject() + infoObject.versionMajor = "1" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # versionMinor + infoObject = self.makeInfoObject() + infoObject.versionMinor = "0" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # copyright + infoObject = self.makeInfoObject() + infoObject.copyright = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # trademark + infoObject = self.makeInfoObject() + infoObject.trademark = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # unitsPerEm + infoObject = self.makeInfoObject() + infoObject.unitsPerEm = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # descender + infoObject = self.makeInfoObject() + infoObject.descender = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # xHeight + infoObject = self.makeInfoObject() + infoObject.xHeight = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # capHeight + infoObject = self.makeInfoObject() + infoObject.capHeight = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # ascender + infoObject = self.makeInfoObject() + infoObject.ascender = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # italicAngle + infoObject = self.makeInfoObject() + infoObject.italicAngle = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - def testHeadWrite(self): - # openTypeHeadCreated - ## not a string - infoObject = self.makeInfoObject() - infoObject.openTypeHeadCreated = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## invalid format - infoObject = self.makeInfoObject() - infoObject.openTypeHeadCreated = "2000-Jan-01 00:00:00" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeHeadLowestRecPPEM - infoObject = self.makeInfoObject() - infoObject.openTypeHeadLowestRecPPEM = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeHeadFlags - infoObject = self.makeInfoObject() - infoObject.openTypeHeadFlags = [-1] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + def testHeadWrite(self): + # openTypeHeadCreated + ## not a string + infoObject = self.makeInfoObject() + infoObject.openTypeHeadCreated = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## invalid format + infoObject = self.makeInfoObject() + infoObject.openTypeHeadCreated = "2000-Jan-01 00:00:00" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeHeadLowestRecPPEM + infoObject = self.makeInfoObject() + infoObject.openTypeHeadLowestRecPPEM = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeHeadFlags + infoObject = self.makeInfoObject() + infoObject.openTypeHeadFlags = [-1] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - def testHheaWrite(self): - # openTypeHheaAscender - infoObject = self.makeInfoObject() - infoObject.openTypeHheaAscender = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeHheaDescender - infoObject = self.makeInfoObject() - infoObject.openTypeHheaDescender = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeHheaLineGap - infoObject = self.makeInfoObject() - infoObject.openTypeHheaLineGap = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeHheaCaretSlopeRise - infoObject = self.makeInfoObject() - infoObject.openTypeHheaCaretSlopeRise = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeHheaCaretSlopeRun - infoObject = self.makeInfoObject() - infoObject.openTypeHheaCaretSlopeRun = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeHheaCaretOffset - infoObject = self.makeInfoObject() - infoObject.openTypeHheaCaretOffset = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + def testHheaWrite(self): + # openTypeHheaAscender + infoObject = self.makeInfoObject() + infoObject.openTypeHheaAscender = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeHheaDescender + infoObject = self.makeInfoObject() + infoObject.openTypeHheaDescender = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeHheaLineGap + infoObject = self.makeInfoObject() + infoObject.openTypeHheaLineGap = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeHheaCaretSlopeRise + infoObject = self.makeInfoObject() + infoObject.openTypeHheaCaretSlopeRise = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeHheaCaretSlopeRun + infoObject = self.makeInfoObject() + infoObject.openTypeHheaCaretSlopeRun = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeHheaCaretOffset + infoObject = self.makeInfoObject() + infoObject.openTypeHheaCaretOffset = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - def testNameWrite(self): - # openTypeNameDesigner - infoObject = self.makeInfoObject() - infoObject.openTypeNameDesigner = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameDesignerURL - infoObject = self.makeInfoObject() - infoObject.openTypeNameDesignerURL = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameManufacturer - infoObject = self.makeInfoObject() - infoObject.openTypeNameManufacturer = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameManufacturerURL - infoObject = self.makeInfoObject() - infoObject.openTypeNameManufacturerURL = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameLicense - infoObject = self.makeInfoObject() - infoObject.openTypeNameLicense = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameLicenseURL - infoObject = self.makeInfoObject() - infoObject.openTypeNameLicenseURL = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameVersion - infoObject = self.makeInfoObject() - infoObject.openTypeNameVersion = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameUniqueID - infoObject = self.makeInfoObject() - infoObject.openTypeNameUniqueID = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameDescription - infoObject = self.makeInfoObject() - infoObject.openTypeNameDescription = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNamePreferredFamilyName - infoObject = self.makeInfoObject() - infoObject.openTypeNamePreferredFamilyName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNamePreferredSubfamilyName - infoObject = self.makeInfoObject() - infoObject.openTypeNamePreferredSubfamilyName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameCompatibleFullName - infoObject = self.makeInfoObject() - infoObject.openTypeNameCompatibleFullName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameSampleText - infoObject = self.makeInfoObject() - infoObject.openTypeNameSampleText = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameWWSFamilyName - infoObject = self.makeInfoObject() - infoObject.openTypeNameWWSFamilyName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeNameWWSSubfamilyName - infoObject = self.makeInfoObject() - infoObject.openTypeNameWWSSubfamilyName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + def testNameWrite(self): + # openTypeNameDesigner + infoObject = self.makeInfoObject() + infoObject.openTypeNameDesigner = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameDesignerURL + infoObject = self.makeInfoObject() + infoObject.openTypeNameDesignerURL = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameManufacturer + infoObject = self.makeInfoObject() + infoObject.openTypeNameManufacturer = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameManufacturerURL + infoObject = self.makeInfoObject() + infoObject.openTypeNameManufacturerURL = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameLicense + infoObject = self.makeInfoObject() + infoObject.openTypeNameLicense = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameLicenseURL + infoObject = self.makeInfoObject() + infoObject.openTypeNameLicenseURL = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameVersion + infoObject = self.makeInfoObject() + infoObject.openTypeNameVersion = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameUniqueID + infoObject = self.makeInfoObject() + infoObject.openTypeNameUniqueID = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameDescription + infoObject = self.makeInfoObject() + infoObject.openTypeNameDescription = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNamePreferredFamilyName + infoObject = self.makeInfoObject() + infoObject.openTypeNamePreferredFamilyName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNamePreferredSubfamilyName + infoObject = self.makeInfoObject() + infoObject.openTypeNamePreferredSubfamilyName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameCompatibleFullName + infoObject = self.makeInfoObject() + infoObject.openTypeNameCompatibleFullName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameSampleText + infoObject = self.makeInfoObject() + infoObject.openTypeNameSampleText = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameWWSFamilyName + infoObject = self.makeInfoObject() + infoObject.openTypeNameWWSFamilyName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeNameWWSSubfamilyName + infoObject = self.makeInfoObject() + infoObject.openTypeNameWWSSubfamilyName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - def testOS2Write(self): - # openTypeOS2WidthClass - ## not an int - infoObject = self.makeInfoObject() - infoObject.openTypeOS2WidthClass = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## out or range - infoObject = self.makeInfoObject() - infoObject.openTypeOS2WidthClass = 15 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2WeightClass - infoObject = self.makeInfoObject() - ## not an int - infoObject.openTypeOS2WeightClass = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## out of range - infoObject.openTypeOS2WeightClass = -50 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2Selection - infoObject = self.makeInfoObject() - infoObject.openTypeOS2Selection = [-1] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2VendorID - infoObject = self.makeInfoObject() - infoObject.openTypeOS2VendorID = 1234 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2Panose - ## not an int - infoObject = self.makeInfoObject() - infoObject.openTypeOS2Panose = [0, 1, 2, 3, 4, 5, 6, 7, 8, str(9)] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## too few values - infoObject = self.makeInfoObject() - infoObject.openTypeOS2Panose = [0, 1, 2, 3] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## too many values - infoObject = self.makeInfoObject() - infoObject.openTypeOS2Panose = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2FamilyClass - ## not an int - infoObject = self.makeInfoObject() - infoObject.openTypeOS2FamilyClass = [0, str(1)] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## too few values - infoObject = self.makeInfoObject() - infoObject.openTypeOS2FamilyClass = [1] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## too many values - infoObject = self.makeInfoObject() - infoObject.openTypeOS2FamilyClass = [1, 1, 1] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## out of range - infoObject = self.makeInfoObject() - infoObject.openTypeOS2FamilyClass = [1, 20] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2UnicodeRanges - ## not an int - infoObject = self.makeInfoObject() - infoObject.openTypeOS2UnicodeRanges = ["0"] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## out of range - infoObject = self.makeInfoObject() - infoObject.openTypeOS2UnicodeRanges = [-1] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2CodePageRanges - ## not an int - infoObject = self.makeInfoObject() - infoObject.openTypeOS2CodePageRanges = ["0"] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## out of range - infoObject = self.makeInfoObject() - infoObject.openTypeOS2CodePageRanges = [-1] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2TypoAscender - infoObject = self.makeInfoObject() - infoObject.openTypeOS2TypoAscender = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2TypoDescender - infoObject = self.makeInfoObject() - infoObject.openTypeOS2TypoDescender = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2TypoLineGap - infoObject = self.makeInfoObject() - infoObject.openTypeOS2TypoLineGap = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2WinAscent - infoObject = self.makeInfoObject() - infoObject.openTypeOS2WinAscent = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2WinDescent - infoObject = self.makeInfoObject() - infoObject.openTypeOS2WinDescent = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2Type - ## not an int - infoObject = self.makeInfoObject() - infoObject.openTypeOS2Type = ["1"] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## out of range - infoObject = self.makeInfoObject() - infoObject.openTypeOS2Type = [-1] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2SubscriptXSize - infoObject = self.makeInfoObject() - infoObject.openTypeOS2SubscriptXSize = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2SubscriptYSize - infoObject = self.makeInfoObject() - infoObject.openTypeOS2SubscriptYSize = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2SubscriptXOffset - infoObject = self.makeInfoObject() - infoObject.openTypeOS2SubscriptXOffset = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2SubscriptYOffset - infoObject = self.makeInfoObject() - infoObject.openTypeOS2SubscriptYOffset = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2SuperscriptXSize - infoObject = self.makeInfoObject() - infoObject.openTypeOS2SuperscriptXSize = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2SuperscriptYSize - infoObject = self.makeInfoObject() - infoObject.openTypeOS2SuperscriptYSize = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2SuperscriptXOffset - infoObject = self.makeInfoObject() - infoObject.openTypeOS2SuperscriptXOffset = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2SuperscriptYOffset - infoObject = self.makeInfoObject() - infoObject.openTypeOS2SuperscriptYOffset = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2StrikeoutSize - infoObject = self.makeInfoObject() - infoObject.openTypeOS2StrikeoutSize = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeOS2StrikeoutPosition - infoObject = self.makeInfoObject() - infoObject.openTypeOS2StrikeoutPosition = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + def testOS2Write(self): + # openTypeOS2WidthClass + ## not an int + infoObject = self.makeInfoObject() + infoObject.openTypeOS2WidthClass = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## out or range + infoObject = self.makeInfoObject() + infoObject.openTypeOS2WidthClass = 15 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2WeightClass + infoObject = self.makeInfoObject() + ## not an int + infoObject.openTypeOS2WeightClass = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## out of range + infoObject.openTypeOS2WeightClass = -50 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2Selection + infoObject = self.makeInfoObject() + infoObject.openTypeOS2Selection = [-1] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2VendorID + infoObject = self.makeInfoObject() + infoObject.openTypeOS2VendorID = 1234 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2Panose + ## not an int + infoObject = self.makeInfoObject() + infoObject.openTypeOS2Panose = [0, 1, 2, 3, 4, 5, 6, 7, 8, str(9)] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## too few values + infoObject = self.makeInfoObject() + infoObject.openTypeOS2Panose = [0, 1, 2, 3] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## too many values + infoObject = self.makeInfoObject() + infoObject.openTypeOS2Panose = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2FamilyClass + ## not an int + infoObject = self.makeInfoObject() + infoObject.openTypeOS2FamilyClass = [0, str(1)] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## too few values + infoObject = self.makeInfoObject() + infoObject.openTypeOS2FamilyClass = [1] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## too many values + infoObject = self.makeInfoObject() + infoObject.openTypeOS2FamilyClass = [1, 1, 1] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## out of range + infoObject = self.makeInfoObject() + infoObject.openTypeOS2FamilyClass = [1, 20] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2UnicodeRanges + ## not an int + infoObject = self.makeInfoObject() + infoObject.openTypeOS2UnicodeRanges = ["0"] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## out of range + infoObject = self.makeInfoObject() + infoObject.openTypeOS2UnicodeRanges = [-1] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2CodePageRanges + ## not an int + infoObject = self.makeInfoObject() + infoObject.openTypeOS2CodePageRanges = ["0"] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## out of range + infoObject = self.makeInfoObject() + infoObject.openTypeOS2CodePageRanges = [-1] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2TypoAscender + infoObject = self.makeInfoObject() + infoObject.openTypeOS2TypoAscender = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2TypoDescender + infoObject = self.makeInfoObject() + infoObject.openTypeOS2TypoDescender = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2TypoLineGap + infoObject = self.makeInfoObject() + infoObject.openTypeOS2TypoLineGap = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2WinAscent + infoObject = self.makeInfoObject() + infoObject.openTypeOS2WinAscent = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2WinDescent + infoObject = self.makeInfoObject() + infoObject.openTypeOS2WinDescent = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2Type + ## not an int + infoObject = self.makeInfoObject() + infoObject.openTypeOS2Type = ["1"] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## out of range + infoObject = self.makeInfoObject() + infoObject.openTypeOS2Type = [-1] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2SubscriptXSize + infoObject = self.makeInfoObject() + infoObject.openTypeOS2SubscriptXSize = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2SubscriptYSize + infoObject = self.makeInfoObject() + infoObject.openTypeOS2SubscriptYSize = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2SubscriptXOffset + infoObject = self.makeInfoObject() + infoObject.openTypeOS2SubscriptXOffset = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2SubscriptYOffset + infoObject = self.makeInfoObject() + infoObject.openTypeOS2SubscriptYOffset = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2SuperscriptXSize + infoObject = self.makeInfoObject() + infoObject.openTypeOS2SuperscriptXSize = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2SuperscriptYSize + infoObject = self.makeInfoObject() + infoObject.openTypeOS2SuperscriptYSize = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2SuperscriptXOffset + infoObject = self.makeInfoObject() + infoObject.openTypeOS2SuperscriptXOffset = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2SuperscriptYOffset + infoObject = self.makeInfoObject() + infoObject.openTypeOS2SuperscriptYOffset = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2StrikeoutSize + infoObject = self.makeInfoObject() + infoObject.openTypeOS2StrikeoutSize = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeOS2StrikeoutPosition + infoObject = self.makeInfoObject() + infoObject.openTypeOS2StrikeoutPosition = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - def testVheaWrite(self): - # openTypeVheaVertTypoAscender - infoObject = self.makeInfoObject() - infoObject.openTypeVheaVertTypoAscender = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeVheaVertTypoDescender - infoObject = self.makeInfoObject() - infoObject.openTypeVheaVertTypoDescender = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeVheaVertTypoLineGap - infoObject = self.makeInfoObject() - infoObject.openTypeVheaVertTypoLineGap = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeVheaCaretSlopeRise - infoObject = self.makeInfoObject() - infoObject.openTypeVheaCaretSlopeRise = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeVheaCaretSlopeRun - infoObject = self.makeInfoObject() - infoObject.openTypeVheaCaretSlopeRun = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # openTypeVheaCaretOffset - infoObject = self.makeInfoObject() - infoObject.openTypeVheaCaretOffset = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + def testVheaWrite(self): + # openTypeVheaVertTypoAscender + infoObject = self.makeInfoObject() + infoObject.openTypeVheaVertTypoAscender = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeVheaVertTypoDescender + infoObject = self.makeInfoObject() + infoObject.openTypeVheaVertTypoDescender = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeVheaVertTypoLineGap + infoObject = self.makeInfoObject() + infoObject.openTypeVheaVertTypoLineGap = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeVheaCaretSlopeRise + infoObject = self.makeInfoObject() + infoObject.openTypeVheaCaretSlopeRise = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeVheaCaretSlopeRun + infoObject = self.makeInfoObject() + infoObject.openTypeVheaCaretSlopeRun = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # openTypeVheaCaretOffset + infoObject = self.makeInfoObject() + infoObject.openTypeVheaCaretOffset = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - def testFONDWrite(self): - # macintoshFONDFamilyID - infoObject = self.makeInfoObject() - infoObject.macintoshFONDFamilyID = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # macintoshFONDName - infoObject = self.makeInfoObject() - infoObject.macintoshFONDName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + def testFONDWrite(self): + # macintoshFONDFamilyID + infoObject = self.makeInfoObject() + infoObject.macintoshFONDFamilyID = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # macintoshFONDName + infoObject = self.makeInfoObject() + infoObject.macintoshFONDName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - def testPostscriptWrite(self): - # postscriptFontName - infoObject = self.makeInfoObject() - infoObject.postscriptFontName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptFullName - infoObject = self.makeInfoObject() - infoObject.postscriptFullName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptSlantAngle - infoObject = self.makeInfoObject() - infoObject.postscriptSlantAngle = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptUniqueID - infoObject = self.makeInfoObject() - infoObject.postscriptUniqueID = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptUnderlineThickness - infoObject = self.makeInfoObject() - infoObject.postscriptUnderlineThickness = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptUnderlinePosition - infoObject = self.makeInfoObject() - infoObject.postscriptUnderlinePosition = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptIsFixedPitch - infoObject = self.makeInfoObject() - infoObject.postscriptIsFixedPitch = 2 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptBlueValues - ## not a list - infoObject = self.makeInfoObject() - infoObject.postscriptBlueValues = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## uneven value count - infoObject = self.makeInfoObject() - infoObject.postscriptBlueValues = [500] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## too many values - infoObject = self.makeInfoObject() - infoObject.postscriptBlueValues = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptOtherBlues - ## not a list - infoObject = self.makeInfoObject() - infoObject.postscriptOtherBlues = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## uneven value count - infoObject = self.makeInfoObject() - infoObject.postscriptOtherBlues = [500] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## too many values - infoObject = self.makeInfoObject() - infoObject.postscriptOtherBlues = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptFamilyBlues - ## not a list - infoObject = self.makeInfoObject() - infoObject.postscriptFamilyBlues = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## uneven value count - infoObject = self.makeInfoObject() - infoObject.postscriptFamilyBlues = [500] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## too many values - infoObject = self.makeInfoObject() - infoObject.postscriptFamilyBlues = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptFamilyOtherBlues - ## not a list - infoObject = self.makeInfoObject() - infoObject.postscriptFamilyOtherBlues = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## uneven value count - infoObject = self.makeInfoObject() - infoObject.postscriptFamilyOtherBlues = [500] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## too many values - infoObject = self.makeInfoObject() - infoObject.postscriptFamilyOtherBlues = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptStemSnapH - ## not list - infoObject = self.makeInfoObject() - infoObject.postscriptStemSnapH = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## too many values - infoObject = self.makeInfoObject() - infoObject.postscriptStemSnapH = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptStemSnapV - ## not list - infoObject = self.makeInfoObject() - infoObject.postscriptStemSnapV = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - ## too many values - infoObject = self.makeInfoObject() - infoObject.postscriptStemSnapV = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160] - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptBlueFuzz - infoObject = self.makeInfoObject() - infoObject.postscriptBlueFuzz = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptBlueShift - infoObject = self.makeInfoObject() - infoObject.postscriptBlueShift = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptBlueScale - infoObject = self.makeInfoObject() - infoObject.postscriptBlueScale = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptForceBold - infoObject = self.makeInfoObject() - infoObject.postscriptForceBold = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptDefaultWidthX - infoObject = self.makeInfoObject() - infoObject.postscriptDefaultWidthX = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptNominalWidthX - infoObject = self.makeInfoObject() - infoObject.postscriptNominalWidthX = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptWeightName - infoObject = self.makeInfoObject() - infoObject.postscriptWeightName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptDefaultCharacter - infoObject = self.makeInfoObject() - infoObject.postscriptDefaultCharacter = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # postscriptWindowsCharacterSet - infoObject = self.makeInfoObject() - infoObject.postscriptWindowsCharacterSet = -1 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # macintoshFONDFamilyID - infoObject = self.makeInfoObject() - infoObject.macintoshFONDFamilyID = "abc" - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) - # macintoshFONDName - infoObject = self.makeInfoObject() - infoObject.macintoshFONDName = 123 - writer = UFOWriter(self.dstDir, formatVersion=2) - self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + def testPostscriptWrite(self): + # postscriptFontName + infoObject = self.makeInfoObject() + infoObject.postscriptFontName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptFullName + infoObject = self.makeInfoObject() + infoObject.postscriptFullName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptSlantAngle + infoObject = self.makeInfoObject() + infoObject.postscriptSlantAngle = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptUniqueID + infoObject = self.makeInfoObject() + infoObject.postscriptUniqueID = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptUnderlineThickness + infoObject = self.makeInfoObject() + infoObject.postscriptUnderlineThickness = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptUnderlinePosition + infoObject = self.makeInfoObject() + infoObject.postscriptUnderlinePosition = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptIsFixedPitch + infoObject = self.makeInfoObject() + infoObject.postscriptIsFixedPitch = 2 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptBlueValues + ## not a list + infoObject = self.makeInfoObject() + infoObject.postscriptBlueValues = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## uneven value count + infoObject = self.makeInfoObject() + infoObject.postscriptBlueValues = [500] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## too many values + infoObject = self.makeInfoObject() + infoObject.postscriptBlueValues = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptOtherBlues + ## not a list + infoObject = self.makeInfoObject() + infoObject.postscriptOtherBlues = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## uneven value count + infoObject = self.makeInfoObject() + infoObject.postscriptOtherBlues = [500] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## too many values + infoObject = self.makeInfoObject() + infoObject.postscriptOtherBlues = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptFamilyBlues + ## not a list + infoObject = self.makeInfoObject() + infoObject.postscriptFamilyBlues = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## uneven value count + infoObject = self.makeInfoObject() + infoObject.postscriptFamilyBlues = [500] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## too many values + infoObject = self.makeInfoObject() + infoObject.postscriptFamilyBlues = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptFamilyOtherBlues + ## not a list + infoObject = self.makeInfoObject() + infoObject.postscriptFamilyOtherBlues = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## uneven value count + infoObject = self.makeInfoObject() + infoObject.postscriptFamilyOtherBlues = [500] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## too many values + infoObject = self.makeInfoObject() + infoObject.postscriptFamilyOtherBlues = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptStemSnapH + ## not list + infoObject = self.makeInfoObject() + infoObject.postscriptStemSnapH = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## too many values + infoObject = self.makeInfoObject() + infoObject.postscriptStemSnapH = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptStemSnapV + ## not list + infoObject = self.makeInfoObject() + infoObject.postscriptStemSnapV = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + ## too many values + infoObject = self.makeInfoObject() + infoObject.postscriptStemSnapV = [ + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100, + 110, + 120, + 130, + 140, + 150, + 160, + ] + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptBlueFuzz + infoObject = self.makeInfoObject() + infoObject.postscriptBlueFuzz = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptBlueShift + infoObject = self.makeInfoObject() + infoObject.postscriptBlueShift = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptBlueScale + infoObject = self.makeInfoObject() + infoObject.postscriptBlueScale = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptForceBold + infoObject = self.makeInfoObject() + infoObject.postscriptForceBold = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptDefaultWidthX + infoObject = self.makeInfoObject() + infoObject.postscriptDefaultWidthX = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptNominalWidthX + infoObject = self.makeInfoObject() + infoObject.postscriptNominalWidthX = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptWeightName + infoObject = self.makeInfoObject() + infoObject.postscriptWeightName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptDefaultCharacter + infoObject = self.makeInfoObject() + infoObject.postscriptDefaultCharacter = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # postscriptWindowsCharacterSet + infoObject = self.makeInfoObject() + infoObject.postscriptWindowsCharacterSet = -1 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # macintoshFONDFamilyID + infoObject = self.makeInfoObject() + infoObject.macintoshFONDFamilyID = "abc" + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) + # macintoshFONDName + infoObject = self.makeInfoObject() + infoObject.macintoshFONDName = 123 + writer = UFOWriter(self.dstDir, formatVersion=2) + self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject) |