diff options
Diffstat (limited to 'Tests/ufoLib/UFO1_test.py')
-rw-r--r-- | Tests/ufoLib/UFO1_test.py | 254 |
1 files changed, 120 insertions, 134 deletions
diff --git a/Tests/ufoLib/UFO1_test.py b/Tests/ufoLib/UFO1_test.py index 5feb045a..aad35229 100644 --- a/Tests/ufoLib/UFO1_test.py +++ b/Tests/ufoLib/UFO1_test.py @@ -8,143 +8,129 @@ from fontTools.ufoLib import plistlib from .testSupport import fontInfoVersion1, fontInfoVersion2 -class TestInfoObject: pass +class TestInfoObject: + 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") - with open(path, "wb") as f: - plistlib.dump(metaInfo, f) - - 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 testRead(self): - originalData = dict(fontInfoVersion1) - self._writeInfoToPlist(originalData) - infoObject = TestInfoObject() - reader = UFOReader(self.dstDir, validate=True) - 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 list(fontStyle1To2.items()): - info = dict(fontInfoVersion1) - info["fontStyle"] = old - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - 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 list(widthName1To2.items()): - info = dict(fontInfoVersion1) - info["widthName"] = old - self._writeInfoToPlist(info) - reader = UFOReader(self.dstDir, validate=True) - infoObject = TestInfoObject() - reader.readInfo(infoObject) - self.assertEqual(new, infoObject.openTypeOS2WidthClass) + def setUp(self): + self.dstDir = tempfile.mktemp() + os.mkdir(self.dstDir) + metaInfo = {"creator": "test", "formatVersion": 1} + 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 _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(fontInfoVersion1) + self._writeInfoToPlist(originalData) + infoObject = TestInfoObject() + reader = UFOReader(self.dstDir, validate=True) + 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 list(fontStyle1To2.items()): + info = dict(fontInfoVersion1) + info["fontStyle"] = old + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + 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 list(widthName1To2.items()): + info = dict(fontInfoVersion1) + info["widthName"] = old + self._writeInfoToPlist(info) + reader = UFOReader(self.dstDir, validate=True) + infoObject = TestInfoObject() + reader.readInfo(infoObject) + self.assertEqual(new, infoObject.openTypeOS2WidthClass) class WriteFontInfoVersion1TestCase(unittest.TestCase): - - 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 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 testWrite(self): - infoObject = self.makeInfoObject() - writer = UFOWriter(self.dstDir, formatVersion=1) - writer.writeInfo(infoObject) - writtenData = self.readPlist() - for attr, originalValue in list(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 list(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 list(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) + 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 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 testWrite(self): + infoObject = self.makeInfoObject() + writer = UFOWriter(self.dstDir, formatVersion=1) + writer.writeInfo(infoObject) + writtenData = self.readPlist() + for attr, originalValue in list(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 list(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 list(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) |