diff options
Diffstat (limited to 'Tests/afmLib/afmLib_test.py')
-rw-r--r-- | Tests/afmLib/afmLib_test.py | 94 |
1 files changed, 50 insertions, 44 deletions
diff --git a/Tests/afmLib/afmLib_test.py b/Tests/afmLib/afmLib_test.py index 3e9d9d88..e3640819 100644 --- a/Tests/afmLib/afmLib_test.py +++ b/Tests/afmLib/afmLib_test.py @@ -4,50 +4,56 @@ from fontTools import afmLib CWD = os.path.abspath(os.path.dirname(__file__)) -DATADIR = os.path.join(CWD, 'data') -AFM = os.path.join(DATADIR, 'TestAFM.afm') +DATADIR = os.path.join(CWD, "data") +AFM = os.path.join(DATADIR, "TestAFM.afm") class AFMTest(unittest.TestCase): - - def test_read_afm(self): - afm = afmLib.AFM(AFM) - self.assertEqual(sorted(afm.kernpairs()), - sorted([('V', 'A'), ('T', 'comma'), ('V', 'd'), ('T', 'c'), ('T', 'period')])) - self.assertEqual(afm['V', 'A'], -60) - self.assertEqual(afm['V', 'd'], 30) - self.assertEqual(afm['A'], (65, 668, (8, -25, 660, 666))) - - def test_write_afm(self): - afm = afmLib.AFM(AFM) - newAfm, afmData = self.write(afm) - self.assertEqual(afm.kernpairs(), newAfm.kernpairs()) - self.assertEqual(afm.chars(), newAfm.chars()) - self.assertEqual(afm.comments(), newAfm.comments()[1:]) # skip the "generated by afmLib" comment - for pair in afm.kernpairs(): - self.assertEqual(afm[pair], newAfm[pair]) - for char in afm.chars(): - self.assertEqual(afm[char], newAfm[char]) - with open(AFM, 'r') as f: - originalLines = f.read().splitlines() - newLines = afmData.splitlines() - del newLines[1] # remove the "generated by afmLib" comment - self.assertEqual(originalLines, newLines) - - @staticmethod - def write(afm, sep='\r'): - temp = os.path.join(DATADIR, 'temp.afm') - try: - afm.write(temp, sep) - with open(temp, 'r') as f: - afmData = f.read() - afm = afmLib.AFM(temp) - finally: - if os.path.exists(temp): - os.remove(temp) - return afm, afmData - - -if __name__ == '__main__': - import sys - sys.exit(unittest.main()) + def test_read_afm(self): + afm = afmLib.AFM(AFM) + self.assertEqual( + sorted(afm.kernpairs()), + sorted( + [("V", "A"), ("T", "comma"), ("V", "d"), ("T", "c"), ("T", "period")] + ), + ) + self.assertEqual(afm["V", "A"], -60) + self.assertEqual(afm["V", "d"], 30) + self.assertEqual(afm["A"], (65, 668, (8, -25, 660, 666))) + + def test_write_afm(self): + afm = afmLib.AFM(AFM) + newAfm, afmData = self.write(afm) + self.assertEqual(afm.kernpairs(), newAfm.kernpairs()) + self.assertEqual(afm.chars(), newAfm.chars()) + self.assertEqual( + afm.comments(), newAfm.comments()[1:] + ) # skip the "generated by afmLib" comment + for pair in afm.kernpairs(): + self.assertEqual(afm[pair], newAfm[pair]) + for char in afm.chars(): + self.assertEqual(afm[char], newAfm[char]) + with open(AFM, "r") as f: + originalLines = f.read().splitlines() + newLines = afmData.splitlines() + del newLines[1] # remove the "generated by afmLib" comment + self.assertEqual(originalLines, newLines) + + @staticmethod + def write(afm, sep="\r"): + temp = os.path.join(DATADIR, "temp.afm") + try: + afm.write(temp, sep) + with open(temp, "r") as f: + afmData = f.read() + afm = afmLib.AFM(temp) + finally: + if os.path.exists(temp): + os.remove(temp) + return afm, afmData + + +if __name__ == "__main__": + import sys + + sys.exit(unittest.main()) |