summaryrefslogtreecommitdiff
path: root/misc/pylib/robofab/test/test_ufoLib.py
diff options
context:
space:
mode:
Diffstat (limited to 'misc/pylib/robofab/test/test_ufoLib.py')
-rw-r--r--misc/pylib/robofab/test/test_ufoLib.py1659
1 files changed, 0 insertions, 1659 deletions
diff --git a/misc/pylib/robofab/test/test_ufoLib.py b/misc/pylib/robofab/test/test_ufoLib.py
deleted file mode 100644
index e1da807bb..000000000
--- a/misc/pylib/robofab/test/test_ufoLib.py
+++ /dev/null
@@ -1,1659 +0,0 @@
-import os
-import shutil
-import unittest
-import tempfile
-from plistlib import writePlist, readPlist
-from robofab.ufoLib import UFOReader, UFOWriter, UFOLibError, \
- convertUFOFormatVersion1ToFormatVersion2, convertUFOFormatVersion2ToFormatVersion1
-from robofab.test.testSupport import fontInfoVersion1, fontInfoVersion2, expectedFontInfo1To2Conversion, expectedFontInfo2To1Conversion
-
-
-# the format version 1 lib.plist contains some data
-# that these tests shouldn't be concerned about.
-removeFromFormatVersion1Lib = [
- "org.robofab.opentype.classes",
- "org.robofab.opentype.features",
- "org.robofab.opentype.featureorder",
- "org.robofab.postScriptHintData"
-]
-
-
-class TestInfoObject(object): pass
-
-
-class ReadFontInfoVersion1TestCase(unittest.TestCase):
-
- def setUp(self):
- self.dstDir = tempfile.mktemp()
- os.mkdir(self.dstDir)
- metaInfo = {
- "creator": "test",
- "formatVersion": 1
- }
- path = os.path.join(self.dstDir, "metainfo.plist")
- writePlist(metaInfo, path)
-
- def tearDown(self):
- shutil.rmtree(self.dstDir)
-
- def _writeInfoToPlist(self, info):
- path = os.path.join(self.dstDir, "fontinfo.plist")
- writePlist(info, path)
-
- def testRead(self):
- originalData = dict(fontInfoVersion1)
- self._writeInfoToPlist(originalData)
- infoObject = TestInfoObject()
- reader = UFOReader(self.dstDir)
- reader.readInfo(infoObject)
- for attr in dir(infoObject):
- if attr not in fontInfoVersion2:
- continue
- originalValue = fontInfoVersion2[attr]
- readValue = getattr(infoObject, attr)
- self.assertEqual(originalValue, readValue)
-
- def testFontStyleConversion(self):
- fontStyle1To2 = {
- 64 : "regular",
- 1 : "italic",
- 32 : "bold",
- 33 : "bold italic"
- }
- for old, new in fontStyle1To2.items():
- info = dict(fontInfoVersion1)
- info["fontStyle"] = old
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- infoObject = TestInfoObject()
- reader.readInfo(infoObject)
- self.assertEqual(new, infoObject.styleMapStyleName)
-
- def testWidthNameConversion(self):
- widthName1To2 = {
- "Ultra-condensed" : 1,
- "Extra-condensed" : 2,
- "Condensed" : 3,
- "Semi-condensed" : 4,
- "Medium (normal)" : 5,
- "Semi-expanded" : 6,
- "Expanded" : 7,
- "Extra-expanded" : 8,
- "Ultra-expanded" : 9
- }
- for old, new in widthName1To2.items():
- info = dict(fontInfoVersion1)
- info["widthName"] = old
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- infoObject = TestInfoObject()
- reader.readInfo(infoObject)
- self.assertEqual(new, infoObject.openTypeOS2WidthClass)
-
-
-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")
- writePlist(metaInfo, path)
-
- def tearDown(self):
- shutil.rmtree(self.dstDir)
-
- def _writeInfoToPlist(self, info):
- path = os.path.join(self.dstDir, "fontinfo.plist")
- writePlist(info, path)
-
- def testRead(self):
- originalData = dict(fontInfoVersion2)
- self._writeInfoToPlist(originalData)
- infoObject = TestInfoObject()
- reader = UFOReader(self.dstDir)
- reader.readInfo(infoObject)
- readData = {}
- for attr in 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)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # styleName
- info = dict(fontInfoVersion2)
- info["styleName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # styleMapFamilyName
- info = dict(fontInfoVersion2)
- info["styleMapFamilyName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # styleMapStyleName
- ## not a string
- info = dict(fontInfoVersion2)
- info["styleMapStyleName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- ## out of range
- info = dict(fontInfoVersion2)
- info["styleMapStyleName"] = "REGULAR"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # versionMajor
- info = dict(fontInfoVersion2)
- info["versionMajor"] = "1"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # versionMinor
- info = dict(fontInfoVersion2)
- info["versionMinor"] = "0"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # copyright
- info = dict(fontInfoVersion2)
- info["copyright"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # trademark
- info = dict(fontInfoVersion2)
- info["trademark"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # unitsPerEm
- info = dict(fontInfoVersion2)
- info["unitsPerEm"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # descender
- info = dict(fontInfoVersion2)
- info["descender"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # xHeight
- info = dict(fontInfoVersion2)
- info["xHeight"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # capHeight
- info = dict(fontInfoVersion2)
- info["capHeight"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # ascender
- info = dict(fontInfoVersion2)
- info["ascender"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # italicAngle
- info = dict(fontInfoVersion2)
- info["italicAngle"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- 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)
- 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)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeHeadLowestRecPPEM
- info = dict(fontInfoVersion2)
- info["openTypeHeadLowestRecPPEM"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeHeadFlags
- info = dict(fontInfoVersion2)
- info["openTypeHeadFlags"] = [-1]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
-
- def testHheaRead(self):
- # openTypeHheaAscender
- info = dict(fontInfoVersion2)
- info["openTypeHheaAscender"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeHheaDescender
- info = dict(fontInfoVersion2)
- info["openTypeHheaDescender"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeHheaLineGap
- info = dict(fontInfoVersion2)
- info["openTypeHheaLineGap"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeHheaCaretSlopeRise
- info = dict(fontInfoVersion2)
- info["openTypeHheaCaretSlopeRise"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeHheaCaretSlopeRun
- info = dict(fontInfoVersion2)
- info["openTypeHheaCaretSlopeRun"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeHheaCaretOffset
- info = dict(fontInfoVersion2)
- info["openTypeHheaCaretOffset"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
-
- def testNameRead(self):
- # openTypeNameDesigner
- info = dict(fontInfoVersion2)
- info["openTypeNameDesigner"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameDesignerURL
- info = dict(fontInfoVersion2)
- info["openTypeNameDesignerURL"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameManufacturer
- info = dict(fontInfoVersion2)
- info["openTypeNameManufacturer"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameManufacturerURL
- info = dict(fontInfoVersion2)
- info["openTypeNameManufacturerURL"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameLicense
- info = dict(fontInfoVersion2)
- info["openTypeNameLicense"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameLicenseURL
- info = dict(fontInfoVersion2)
- info["openTypeNameLicenseURL"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameVersion
- info = dict(fontInfoVersion2)
- info["openTypeNameVersion"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameUniqueID
- info = dict(fontInfoVersion2)
- info["openTypeNameUniqueID"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameDescription
- info = dict(fontInfoVersion2)
- info["openTypeNameDescription"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNamePreferredFamilyName
- info = dict(fontInfoVersion2)
- info["openTypeNamePreferredFamilyName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNamePreferredSubfamilyName
- info = dict(fontInfoVersion2)
- info["openTypeNamePreferredSubfamilyName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameCompatibleFullName
- info = dict(fontInfoVersion2)
- info["openTypeNameCompatibleFullName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameSampleText
- info = dict(fontInfoVersion2)
- info["openTypeNameSampleText"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameWWSFamilyName
- info = dict(fontInfoVersion2)
- info["openTypeNameWWSFamilyName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeNameWWSSubfamilyName
- info = dict(fontInfoVersion2)
- info["openTypeNameWWSSubfamilyName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- ## out or range
- info = dict(fontInfoVersion2)
- info["openTypeOS2WidthClass"] = 15
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2WeightClass
- info = dict(fontInfoVersion2)
- ## not an int
- info["openTypeOS2WeightClass"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- ## out of range
- info["openTypeOS2WeightClass"] = -50
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2Selection
- info = dict(fontInfoVersion2)
- info["openTypeOS2Selection"] = [-1]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2VendorID
- info = dict(fontInfoVersion2)
- info["openTypeOS2VendorID"] = 1234
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- 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)
- 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)
- 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)
- 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)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- ## too few values
- info = dict(fontInfoVersion2)
- info["openTypeOS2FamilyClass"] = [1]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- ## out of range
- info = dict(fontInfoVersion2)
- info["openTypeOS2FamilyClass"] = [1, 201]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2UnicodeRanges
- ## not an int
- info = dict(fontInfoVersion2)
- info["openTypeOS2UnicodeRanges"] = ["0"]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- ## out of range
- info = dict(fontInfoVersion2)
- info["openTypeOS2UnicodeRanges"] = [-1]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2CodePageRanges
- ## not an int
- info = dict(fontInfoVersion2)
- info["openTypeOS2CodePageRanges"] = ["0"]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- ## out of range
- info = dict(fontInfoVersion2)
- info["openTypeOS2CodePageRanges"] = [-1]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2TypoAscender
- info = dict(fontInfoVersion2)
- info["openTypeOS2TypoAscender"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2TypoDescender
- info = dict(fontInfoVersion2)
- info["openTypeOS2TypoDescender"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2TypoLineGap
- info = dict(fontInfoVersion2)
- info["openTypeOS2TypoLineGap"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2WinAscent
- info = dict(fontInfoVersion2)
- info["openTypeOS2WinAscent"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2WinDescent
- info = dict(fontInfoVersion2)
- info["openTypeOS2WinDescent"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2Type
- ## not an int
- info = dict(fontInfoVersion2)
- info["openTypeOS2Type"] = ["1"]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- ## out of range
- info = dict(fontInfoVersion2)
- info["openTypeOS2Type"] = [-1]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2SubscriptXSize
- info = dict(fontInfoVersion2)
- info["openTypeOS2SubscriptXSize"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2SubscriptYSize
- info = dict(fontInfoVersion2)
- info["openTypeOS2SubscriptYSize"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2SubscriptXOffset
- info = dict(fontInfoVersion2)
- info["openTypeOS2SubscriptXOffset"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2SubscriptYOffset
- info = dict(fontInfoVersion2)
- info["openTypeOS2SubscriptYOffset"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2SuperscriptXSize
- info = dict(fontInfoVersion2)
- info["openTypeOS2SuperscriptXSize"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2SuperscriptYSize
- info = dict(fontInfoVersion2)
- info["openTypeOS2SuperscriptYSize"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2SuperscriptXOffset
- info = dict(fontInfoVersion2)
- info["openTypeOS2SuperscriptXOffset"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2SuperscriptYOffset
- info = dict(fontInfoVersion2)
- info["openTypeOS2SuperscriptYOffset"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2StrikeoutSize
- info = dict(fontInfoVersion2)
- info["openTypeOS2StrikeoutSize"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeOS2StrikeoutPosition
- info = dict(fontInfoVersion2)
- info["openTypeOS2StrikeoutPosition"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
-
- def testVheaRead(self):
- # openTypeVheaVertTypoAscender
- info = dict(fontInfoVersion2)
- info["openTypeVheaVertTypoAscender"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeVheaVertTypoDescender
- info = dict(fontInfoVersion2)
- info["openTypeVheaVertTypoDescender"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeVheaVertTypoLineGap
- info = dict(fontInfoVersion2)
- info["openTypeVheaVertTypoLineGap"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeVheaCaretSlopeRise
- info = dict(fontInfoVersion2)
- info["openTypeVheaCaretSlopeRise"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeVheaCaretSlopeRun
- info = dict(fontInfoVersion2)
- info["openTypeVheaCaretSlopeRun"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # openTypeVheaCaretOffset
- info = dict(fontInfoVersion2)
- info["openTypeVheaCaretOffset"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
-
- def testFONDRead(self):
- # macintoshFONDFamilyID
- info = dict(fontInfoVersion2)
- info["macintoshFONDFamilyID"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # macintoshFONDName
- info = dict(fontInfoVersion2)
- info["macintoshFONDName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
-
- def testPostscriptRead(self):
- # postscriptFontName
- info = dict(fontInfoVersion2)
- info["postscriptFontName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # postscriptFullName
- info = dict(fontInfoVersion2)
- info["postscriptFullName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # postscriptSlantAngle
- info = dict(fontInfoVersion2)
- info["postscriptSlantAngle"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, info=TestInfoObject())
- # postscriptUniqueID
- info = dict(fontInfoVersion2)
- info["postscriptUniqueID"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptUnderlineThickness
- info = dict(fontInfoVersion2)
- info["postscriptUnderlineThickness"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptUnderlinePosition
- info = dict(fontInfoVersion2)
- info["postscriptUnderlinePosition"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptIsFixedPitch
- info = dict(fontInfoVersion2)
- info["postscriptIsFixedPitch"] = 2
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptBlueValues
- ## not a list
- info = dict(fontInfoVersion2)
- info["postscriptBlueValues"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- ## uneven value count
- info = dict(fontInfoVersion2)
- info["postscriptBlueValues"] = [500]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptOtherBlues
- ## not a list
- info = dict(fontInfoVersion2)
- info["postscriptOtherBlues"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- ## uneven value count
- info = dict(fontInfoVersion2)
- info["postscriptOtherBlues"] = [500]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptFamilyBlues
- ## not a list
- info = dict(fontInfoVersion2)
- info["postscriptFamilyBlues"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- ## uneven value count
- info = dict(fontInfoVersion2)
- info["postscriptFamilyBlues"] = [500]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptFamilyOtherBlues
- ## not a list
- info = dict(fontInfoVersion2)
- info["postscriptFamilyOtherBlues"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- ## uneven value count
- info = dict(fontInfoVersion2)
- info["postscriptFamilyOtherBlues"] = [500]
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptStemSnapH
- ## not list
- info = dict(fontInfoVersion2)
- info["postscriptStemSnapH"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptStemSnapV
- ## not list
- info = dict(fontInfoVersion2)
- info["postscriptStemSnapV"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptBlueFuzz
- info = dict(fontInfoVersion2)
- info["postscriptBlueFuzz"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptBlueShift
- info = dict(fontInfoVersion2)
- info["postscriptBlueShift"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptBlueScale
- info = dict(fontInfoVersion2)
- info["postscriptBlueScale"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptForceBold
- info = dict(fontInfoVersion2)
- info["postscriptForceBold"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptDefaultWidthX
- info = dict(fontInfoVersion2)
- info["postscriptDefaultWidthX"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptNominalWidthX
- info = dict(fontInfoVersion2)
- info["postscriptNominalWidthX"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptWeightName
- info = dict(fontInfoVersion2)
- info["postscriptWeightName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptDefaultCharacter
- info = dict(fontInfoVersion2)
- info["postscriptDefaultCharacter"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # postscriptWindowsCharacterSet
- info = dict(fontInfoVersion2)
- info["postscriptWindowsCharacterSet"] = -1
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # macintoshFONDFamilyID
- info = dict(fontInfoVersion2)
- info["macintoshFONDFamilyID"] = "abc"
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
- # macintoshFONDName
- info = dict(fontInfoVersion2)
- info["macintoshFONDName"] = 123
- self._writeInfoToPlist(info)
- reader = UFOReader(self.dstDir)
- self.assertRaises(UFOLibError, reader.readInfo, TestInfoObject())
-
-
-class WriteFontInfoVersion1TestCase(unittest.TestCase):
-
- def setUp(self):
- self.dstDir = tempfile.mktemp()
- os.mkdir(self.dstDir)
-
- def tearDown(self):
- shutil.rmtree(self.dstDir)
-
- def makeInfoObject(self):
- infoObject = TestInfoObject()
- for attr, value in fontInfoVersion2.items():
- setattr(infoObject, attr, value)
- return infoObject
-
- def readPlist(self):
- path = os.path.join(self.dstDir, "fontinfo.plist")
- return readPlist(path)
-
- def testWrite(self):
- infoObject = self.makeInfoObject()
- writer = UFOWriter(self.dstDir, formatVersion=1)
- writer.writeInfo(infoObject)
- writtenData = self.readPlist()
- for attr, originalValue in fontInfoVersion1.items():
- newValue = writtenData[attr]
- self.assertEqual(newValue, originalValue)
-
- def testFontStyleConversion(self):
- fontStyle1To2 = {
- 64 : "regular",
- 1 : "italic",
- 32 : "bold",
- 33 : "bold italic"
- }
- for old, new in fontStyle1To2.items():
- infoObject = self.makeInfoObject()
- infoObject.styleMapStyleName = new
- writer = UFOWriter(self.dstDir, formatVersion=1)
- writer.writeInfo(infoObject)
- writtenData = self.readPlist()
- self.assertEqual(writtenData["fontStyle"], old)
-
- def testWidthNameConversion(self):
- widthName1To2 = {
- "Ultra-condensed" : 1,
- "Extra-condensed" : 2,
- "Condensed" : 3,
- "Semi-condensed" : 4,
- "Medium (normal)" : 5,
- "Semi-expanded" : 6,
- "Expanded" : 7,
- "Extra-expanded" : 8,
- "Ultra-expanded" : 9
- }
- for old, new in widthName1To2.items():
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2WidthClass = new
- writer = UFOWriter(self.dstDir, formatVersion=1)
- writer.writeInfo(infoObject)
- writtenData = self.readPlist()
- self.assertEqual(writtenData["widthName"], old)
-
-
-class WriteFontInfoVersion2TestCase(unittest.TestCase):
-
- def setUp(self):
- self.dstDir = tempfile.mktemp()
- os.mkdir(self.dstDir)
-
- def tearDown(self):
- shutil.rmtree(self.dstDir)
-
- def makeInfoObject(self):
- infoObject = TestInfoObject()
- for attr, value in fontInfoVersion2.items():
- setattr(infoObject, attr, value)
- return infoObject
-
- def readPlist(self):
- path = os.path.join(self.dstDir, "fontinfo.plist")
- return readPlist(path)
-
- def testWrite(self):
- infoObject = self.makeInfoObject()
- writer = UFOWriter(self.dstDir)
- writer.writeInfo(infoObject)
- writtenData = self.readPlist()
- for attr, originalValue in fontInfoVersion2.items():
- newValue = writtenData[attr]
- self.assertEqual(newValue, originalValue)
-
- def testGenericWrite(self):
- # familyName
- infoObject = self.makeInfoObject()
- infoObject.familyName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # styleName
- infoObject = self.makeInfoObject()
- infoObject.styleName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # styleMapFamilyName
- infoObject = self.makeInfoObject()
- infoObject.styleMapFamilyName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # styleMapStyleName
- ## not a string
- infoObject = self.makeInfoObject()
- infoObject.styleMapStyleName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## out of range
- infoObject = self.makeInfoObject()
- infoObject.styleMapStyleName = "REGULAR"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # versionMajor
- infoObject = self.makeInfoObject()
- infoObject.versionMajor = "1"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # versionMinor
- infoObject = self.makeInfoObject()
- infoObject.versionMinor = "0"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # copyright
- infoObject = self.makeInfoObject()
- infoObject.copyright = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # trademark
- infoObject = self.makeInfoObject()
- infoObject.trademark = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # unitsPerEm
- infoObject = self.makeInfoObject()
- infoObject.unitsPerEm = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # descender
- infoObject = self.makeInfoObject()
- infoObject.descender = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # xHeight
- infoObject = self.makeInfoObject()
- infoObject.xHeight = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # capHeight
- infoObject = self.makeInfoObject()
- infoObject.capHeight = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # ascender
- infoObject = self.makeInfoObject()
- infoObject.ascender = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # italicAngle
- infoObject = self.makeInfoObject()
- infoObject.italicAngle = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
-
- def testHeadWrite(self):
- # openTypeHeadCreated
- ## not a string
- infoObject = self.makeInfoObject()
- infoObject.openTypeHeadCreated = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## invalid format
- infoObject = self.makeInfoObject()
- infoObject.openTypeHeadCreated = "2000-Jan-01 00:00:00"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeHeadLowestRecPPEM
- infoObject = self.makeInfoObject()
- infoObject.openTypeHeadLowestRecPPEM = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeHeadFlags
- infoObject = self.makeInfoObject()
- infoObject.openTypeHeadFlags = [-1]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
-
- def testHheaWrite(self):
- # openTypeHheaAscender
- infoObject = self.makeInfoObject()
- infoObject.openTypeHheaAscender = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeHheaDescender
- infoObject = self.makeInfoObject()
- infoObject.openTypeHheaDescender = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeHheaLineGap
- infoObject = self.makeInfoObject()
- infoObject.openTypeHheaLineGap = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeHheaCaretSlopeRise
- infoObject = self.makeInfoObject()
- infoObject.openTypeHheaCaretSlopeRise = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeHheaCaretSlopeRun
- infoObject = self.makeInfoObject()
- infoObject.openTypeHheaCaretSlopeRun = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeHheaCaretOffset
- infoObject = self.makeInfoObject()
- infoObject.openTypeHheaCaretOffset = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
-
- def testNameWrite(self):
- # openTypeNameDesigner
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameDesigner = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameDesignerURL
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameDesignerURL = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameManufacturer
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameManufacturer = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameManufacturerURL
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameManufacturerURL = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameLicense
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameLicense = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameLicenseURL
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameLicenseURL = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameVersion
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameVersion = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameUniqueID
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameUniqueID = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameDescription
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameDescription = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNamePreferredFamilyName
- infoObject = self.makeInfoObject()
- infoObject.openTypeNamePreferredFamilyName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNamePreferredSubfamilyName
- infoObject = self.makeInfoObject()
- infoObject.openTypeNamePreferredSubfamilyName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameCompatibleFullName
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameCompatibleFullName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameSampleText
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameSampleText = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameWWSFamilyName
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameWWSFamilyName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeNameWWSSubfamilyName
- infoObject = self.makeInfoObject()
- infoObject.openTypeNameWWSSubfamilyName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
-
- def testOS2Write(self):
- # openTypeOS2WidthClass
- ## not an int
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2WidthClass = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## out or range
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2WidthClass = 15
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2WeightClass
- infoObject = self.makeInfoObject()
- ## not an int
- infoObject.openTypeOS2WeightClass = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## out of range
- infoObject.openTypeOS2WeightClass = -50
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2Selection
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2Selection = [-1]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2VendorID
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2VendorID = 1234
- writer = UFOWriter(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## too few values
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2Panose = [0, 1, 2, 3]
- writer = UFOWriter(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2FamilyClass
- ## not an int
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2FamilyClass = [0, str(1)]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## too few values
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2FamilyClass = [1]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## too many values
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2FamilyClass = [1, 1, 1]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## out of range
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2FamilyClass = [1, 20]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2UnicodeRanges
- ## not an int
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2UnicodeRanges = ["0"]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## out of range
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2UnicodeRanges = [-1]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2CodePageRanges
- ## not an int
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2CodePageRanges = ["0"]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## out of range
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2CodePageRanges = [-1]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2TypoAscender
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2TypoAscender = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2TypoDescender
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2TypoDescender = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2TypoLineGap
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2TypoLineGap = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2WinAscent
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2WinAscent = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2WinDescent
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2WinDescent = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2Type
- ## not an int
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2Type = ["1"]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## out of range
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2Type = [-1]
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2SubscriptXSize
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2SubscriptXSize = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2SubscriptYSize
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2SubscriptYSize = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2SubscriptXOffset
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2SubscriptXOffset = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2SubscriptYOffset
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2SubscriptYOffset = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2SuperscriptXSize
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2SuperscriptXSize = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2SuperscriptYSize
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2SuperscriptYSize = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2SuperscriptXOffset
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2SuperscriptXOffset = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2SuperscriptYOffset
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2SuperscriptYOffset = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2StrikeoutSize
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2StrikeoutSize = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeOS2StrikeoutPosition
- infoObject = self.makeInfoObject()
- infoObject.openTypeOS2StrikeoutPosition = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
-
- def testVheaWrite(self):
- # openTypeVheaVertTypoAscender
- infoObject = self.makeInfoObject()
- infoObject.openTypeVheaVertTypoAscender = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeVheaVertTypoDescender
- infoObject = self.makeInfoObject()
- infoObject.openTypeVheaVertTypoDescender = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeVheaVertTypoLineGap
- infoObject = self.makeInfoObject()
- infoObject.openTypeVheaVertTypoLineGap = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeVheaCaretSlopeRise
- infoObject = self.makeInfoObject()
- infoObject.openTypeVheaCaretSlopeRise = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeVheaCaretSlopeRun
- infoObject = self.makeInfoObject()
- infoObject.openTypeVheaCaretSlopeRun = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # openTypeVheaCaretOffset
- infoObject = self.makeInfoObject()
- infoObject.openTypeVheaCaretOffset = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
-
- def testFONDWrite(self):
- # macintoshFONDFamilyID
- infoObject = self.makeInfoObject()
- infoObject.macintoshFONDFamilyID = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # macintoshFONDName
- infoObject = self.makeInfoObject()
- infoObject.macintoshFONDName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
-
- def testPostscriptWrite(self):
- # postscriptFontName
- infoObject = self.makeInfoObject()
- infoObject.postscriptFontName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptFullName
- infoObject = self.makeInfoObject()
- infoObject.postscriptFullName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptSlantAngle
- infoObject = self.makeInfoObject()
- infoObject.postscriptSlantAngle = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptUniqueID
- infoObject = self.makeInfoObject()
- infoObject.postscriptUniqueID = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptUnderlineThickness
- infoObject = self.makeInfoObject()
- infoObject.postscriptUnderlineThickness = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptUnderlinePosition
- infoObject = self.makeInfoObject()
- infoObject.postscriptUnderlinePosition = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptIsFixedPitch
- infoObject = self.makeInfoObject()
- infoObject.postscriptIsFixedPitch = 2
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptBlueValues
- ## not a list
- infoObject = self.makeInfoObject()
- infoObject.postscriptBlueValues = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## uneven value count
- infoObject = self.makeInfoObject()
- infoObject.postscriptBlueValues = [500]
- writer = UFOWriter(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptOtherBlues
- ## not a list
- infoObject = self.makeInfoObject()
- infoObject.postscriptOtherBlues = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## uneven value count
- infoObject = self.makeInfoObject()
- infoObject.postscriptOtherBlues = [500]
- writer = UFOWriter(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptFamilyBlues
- ## not a list
- infoObject = self.makeInfoObject()
- infoObject.postscriptFamilyBlues = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## uneven value count
- infoObject = self.makeInfoObject()
- infoObject.postscriptFamilyBlues = [500]
- writer = UFOWriter(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptFamilyOtherBlues
- ## not a list
- infoObject = self.makeInfoObject()
- infoObject.postscriptFamilyOtherBlues = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- ## uneven value count
- infoObject = self.makeInfoObject()
- infoObject.postscriptFamilyOtherBlues = [500]
- writer = UFOWriter(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptStemSnapH
- ## not list
- infoObject = self.makeInfoObject()
- infoObject.postscriptStemSnapH = "abc"
- writer = UFOWriter(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptStemSnapV
- ## not list
- infoObject = self.makeInfoObject()
- infoObject.postscriptStemSnapV = "abc"
- writer = UFOWriter(self.dstDir)
- 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)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptBlueFuzz
- infoObject = self.makeInfoObject()
- infoObject.postscriptBlueFuzz = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptBlueShift
- infoObject = self.makeInfoObject()
- infoObject.postscriptBlueShift = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptBlueScale
- infoObject = self.makeInfoObject()
- infoObject.postscriptBlueScale = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptForceBold
- infoObject = self.makeInfoObject()
- infoObject.postscriptForceBold = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptDefaultWidthX
- infoObject = self.makeInfoObject()
- infoObject.postscriptDefaultWidthX = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptNominalWidthX
- infoObject = self.makeInfoObject()
- infoObject.postscriptNominalWidthX = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptWeightName
- infoObject = self.makeInfoObject()
- infoObject.postscriptWeightName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptDefaultCharacter
- infoObject = self.makeInfoObject()
- infoObject.postscriptDefaultCharacter = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # postscriptWindowsCharacterSet
- infoObject = self.makeInfoObject()
- infoObject.postscriptWindowsCharacterSet = -1
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # macintoshFONDFamilyID
- infoObject = self.makeInfoObject()
- infoObject.macintoshFONDFamilyID = "abc"
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
- # macintoshFONDName
- infoObject = self.makeInfoObject()
- infoObject.macintoshFONDName = 123
- writer = UFOWriter(self.dstDir)
- self.assertRaises(UFOLibError, writer.writeInfo, info=infoObject)
-
-
-
-
-class ConversionFunctionsTestCase(unittest.TestCase):
-
- def tearDown(self):
- path = self.getFontPath("TestFont1 (UFO1) converted.ufo")
- if os.path.exists(path):
- shutil.rmtree(path)
- path = self.getFontPath("TestFont1 (UFO2) converted.ufo")
- if os.path.exists(path):
- shutil.rmtree(path)
-
- def getFontPath(self, fileName):
- import robofab
- path = os.path.dirname(robofab.__file__)
- path = os.path.dirname(path)
- path = os.path.dirname(path)
- path = os.path.join(path, "TestData", fileName)
- return path
-
- def compareFileStructures(self, path1, path2, expectedInfoData, testFeatures):
- # result
- metainfoPath1 = os.path.join(path1, "metainfo.plist")
- fontinfoPath1 = os.path.join(path1, "fontinfo.plist")
- kerningPath1 = os.path.join(path1, "kerning.plist")
- groupsPath1 = os.path.join(path1, "groups.plist")
- libPath1 = os.path.join(path1, "lib.plist")
- featuresPath1 = os.path.join(path1, "features.plist")
- glyphsPath1 = os.path.join(path1, "glyphs")
- glyphsPath1_contents = os.path.join(glyphsPath1, "contents.plist")
- glyphsPath1_A = os.path.join(glyphsPath1, "A_.glif")
- glyphsPath1_B = os.path.join(glyphsPath1, "B_.glif")
- # expected result
- metainfoPath2 = os.path.join(path2, "metainfo.plist")
- fontinfoPath2 = os.path.join(path2, "fontinfo.plist")
- kerningPath2 = os.path.join(path2, "kerning.plist")
- groupsPath2 = os.path.join(path2, "groups.plist")
- libPath2 = os.path.join(path2, "lib.plist")
- featuresPath2 = os.path.join(path2, "features.plist")
- glyphsPath2 = os.path.join(path2, "glyphs")
- glyphsPath2_contents = os.path.join(glyphsPath2, "contents.plist")
- glyphsPath2_A = os.path.join(glyphsPath2, "A_.glif")
- glyphsPath2_B = os.path.join(glyphsPath2, "B_.glif")
- # look for existence
- self.assertEqual(os.path.exists(metainfoPath1), True)
- self.assertEqual(os.path.exists(fontinfoPath1), True)
- self.assertEqual(os.path.exists(kerningPath1), True)
- self.assertEqual(os.path.exists(groupsPath1), True)
- self.assertEqual(os.path.exists(libPath1), True)
- self.assertEqual(os.path.exists(glyphsPath1), True)
- self.assertEqual(os.path.exists(glyphsPath1_contents), True)
- self.assertEqual(os.path.exists(glyphsPath1_A), True)
- self.assertEqual(os.path.exists(glyphsPath1_B), True)
- if testFeatures:
- self.assertEqual(os.path.exists(featuresPath1), True)
- # look for aggrement
- data1 = readPlist(metainfoPath1)
- data2 = readPlist(metainfoPath2)
- self.assertEqual(data1, data2)
- data1 = readPlist(fontinfoPath1)
- self.assertEqual(sorted(data1.items()), sorted(expectedInfoData.items()))
- data1 = readPlist(kerningPath1)
- data2 = readPlist(kerningPath2)
- self.assertEqual(data1, data2)
- data1 = readPlist(groupsPath1)
- data2 = readPlist(groupsPath2)
- self.assertEqual(data1, data2)
- data1 = readPlist(libPath1)
- data2 = readPlist(libPath2)
- if "UFO1" in libPath1:
- for key in removeFromFormatVersion1Lib:
- if key in data1:
- del data1[key]
- if "UFO1" in libPath2:
- for key in removeFromFormatVersion1Lib:
- if key in data2:
- del data2[key]
- self.assertEqual(data1, data2)
- data1 = readPlist(glyphsPath1_contents)
- data2 = readPlist(glyphsPath2_contents)
- self.assertEqual(data1, data2)
- data1 = readPlist(glyphsPath1_A)
- data2 = readPlist(glyphsPath2_A)
- self.assertEqual(data1, data2)
- data1 = readPlist(glyphsPath1_B)
- data2 = readPlist(glyphsPath2_B)
- self.assertEqual(data1, data2)
-
- def test1To2(self):
- path1 = self.getFontPath("TestFont1 (UFO1).ufo")
- path2 = self.getFontPath("TestFont1 (UFO1) converted.ufo")
- path3 = self.getFontPath("TestFont1 (UFO2).ufo")
- convertUFOFormatVersion1ToFormatVersion2(path1, path2)
- self.compareFileStructures(path2, path3, expectedFontInfo1To2Conversion, False)
-
- def test2To1(self):
- path1 = self.getFontPath("TestFont1 (UFO2).ufo")
- path2 = self.getFontPath("TestFont1 (UFO2) converted.ufo")
- path3 = self.getFontPath("TestFont1 (UFO1).ufo")
- convertUFOFormatVersion2ToFormatVersion1(path1, path2)
- self.compareFileStructures(path2, path3, expectedFontInfo2To1Conversion, False)
-
-
-if __name__ == "__main__":
- from robofab.test.testSupport import runTests
- runTests()