summaryrefslogtreecommitdiff
path: root/misc/pylib/robofab/test/test_glifLib.py
diff options
context:
space:
mode:
Diffstat (limited to 'misc/pylib/robofab/test/test_glifLib.py')
-rw-r--r--misc/pylib/robofab/test/test_glifLib.py150
1 files changed, 0 insertions, 150 deletions
diff --git a/misc/pylib/robofab/test/test_glifLib.py b/misc/pylib/robofab/test/test_glifLib.py
deleted file mode 100644
index 13eca3a6a..000000000
--- a/misc/pylib/robofab/test/test_glifLib.py
+++ /dev/null
@@ -1,150 +0,0 @@
-import os
-import tempfile
-import shutil
-import unittest
-
-from robofab.test.testSupport import getDemoFontGlyphSetPath
-from robofab.glifLib import GlyphSet, glyphNameToFileName, READ_MODE
-from robofab.tools.glyphNameSchemes import glyphNameToShortFileName
-
-
-GLYPHSETDIR = getDemoFontGlyphSetPath()
-
-
-class GlyphSetTests(unittest.TestCase):
-
- def setUp(self):
- self.dstDir = tempfile.mktemp()
- os.mkdir(self.dstDir)
-
- def tearDown(self):
- shutil.rmtree(self.dstDir)
-
- def testRoundTrip(self):
- srcDir = GLYPHSETDIR
- dstDir = self.dstDir
- src = GlyphSet(srcDir)
- dst = GlyphSet(dstDir)
- for glyphName in src.keys():
- g = src[glyphName]
- g.drawPoints(None) # load attrs
- dst.writeGlyph(glyphName, g, g.drawPoints)
- # compare raw file data:
- for glyphName in src.keys():
- fileName = src.contents[glyphName]
- org = file(os.path.join(srcDir, fileName), READ_MODE).read()
- new = file(os.path.join(dstDir, fileName), READ_MODE).read()
- self.assertEqual(org, new, "%r .glif file differs after round tripping" % glyphName)
-
- def testRebuildContents(self):
- gset = GlyphSet(GLYPHSETDIR)
- contents = gset.contents
- gset.rebuildContents()
- self.assertEqual(contents, gset.contents)
-
- def testReverseContents(self):
- gset = GlyphSet(GLYPHSETDIR)
- d = {}
- for k, v in gset.getReverseContents().items():
- d[v] = k
- org = {}
- for k, v in gset.contents.items():
- org[k] = v.lower()
- self.assertEqual(d, org)
-
- def testReverseContents2(self):
- src = GlyphSet(GLYPHSETDIR)
- dst = GlyphSet(self.dstDir)
- dstMap = dst.getReverseContents()
- self.assertEqual(dstMap, {})
- for glyphName in src.keys():
- g = src[glyphName]
- g.drawPoints(None) # load attrs
- dst.writeGlyph(glyphName, g, g.drawPoints)
- self.assertNotEqual(dstMap, {})
- srcMap = dict(src.getReverseContents()) # copy
- self.assertEqual(dstMap, srcMap)
- del srcMap["a.glif"]
- dst.deleteGlyph("a")
- self.assertEqual(dstMap, srcMap)
-
- def testCustomFileNamingScheme(self):
- def myGlyphNameToFileName(glyphName, glyphSet):
- return "prefix" + glyphNameToFileName(glyphName, glyphSet)
- src = GlyphSet(GLYPHSETDIR)
- dst = GlyphSet(self.dstDir, myGlyphNameToFileName)
- for glyphName in src.keys():
- g = src[glyphName]
- g.drawPoints(None) # load attrs
- dst.writeGlyph(glyphName, g, g.drawPoints)
- d = {}
- for k, v in src.contents.items():
- print k, v
- d[k] = "prefix" + v
- self.assertEqual(d, dst.contents)
-
- def testGetUnicodes(self):
- src = GlyphSet(GLYPHSETDIR)
- unicodes = src.getUnicodes()
- for glyphName in src.keys():
- g = src[glyphName]
- g.drawPoints(None) # load attrs
- if not hasattr(g, "unicodes"):
- self.assertEqual(unicodes[glyphName], [])
- else:
- self.assertEqual(g.unicodes, unicodes[glyphName])
-
-
-class FileNameTests(unittest.TestCase):
-
- def testDefaultFileNameScheme(self):
- self.assertEqual(glyphNameToFileName("a", None), "a.glif")
- self.assertEqual(glyphNameToFileName("A", None), "A_.glif")
- self.assertEqual(glyphNameToFileName("Aring", None), "Aring_.glif")
- self.assertEqual(glyphNameToFileName("F_A_B", None), "F__A__B_.glif")
- self.assertEqual(glyphNameToFileName("A.alt", None), "A_.alt.glif")
- self.assertEqual(glyphNameToFileName("A.Alt", None), "A_.Alt_.glif")
- self.assertEqual(glyphNameToFileName(".notdef", None), "_notdef.glif")
- self.assertEqual(glyphNameToFileName("T_H", None), "T__H_.glif")
- self.assertEqual(glyphNameToFileName("T_h", None), "T__h.glif")
- self.assertEqual(glyphNameToFileName("t_h", None), "t_h.glif")
- self.assertEqual(glyphNameToFileName('F_F_I', None), "F__F__I_.glif")
- self.assertEqual(glyphNameToFileName('f_f_i', None), "f_f_i.glif")
-
-
- def testShortFileNameScheme(self):
- print "testShortFileNameScheme"
- self.assertEqual(glyphNameToShortFileName("a", None), "a.glif")
- self.assertEqual(glyphNameToShortFileName("A", None), "A_.glif")
- self.assertEqual(glyphNameToShortFileName("aE", None), "aE_.glif")
- self.assertEqual(glyphNameToShortFileName("AE", None), "A_E_.glif")
- self.assertEqual(glyphNameToShortFileName("a.alt", None), "a_alt.glif")
- self.assertEqual(glyphNameToShortFileName("A.alt", None), "A__alt.glif")
- self.assertEqual(glyphNameToShortFileName("a.alt#swash", None), "a_alt_swash.glif")
- self.assertEqual(glyphNameToShortFileName("A.alt", None), "A__alt.glif")
- self.assertEqual(glyphNameToShortFileName(".notdef", None), "_notdef.glif")
- self.assertEqual(glyphNameToShortFileName("f_f_i", None), "f_f_i.glif")
- self.assertEqual(glyphNameToShortFileName("F_F_I", None), "F__F__I_.glif")
- self.assertEqual(glyphNameToShortFileName("acircumflexdieresis.swash.alt1", None), "acircumflexdieresi0cfc8352.glif")
- self.assertEqual(glyphNameToShortFileName("acircumflexdieresis.swash.alt2", None), "acircumflexdieresi95f5d2e8.glif")
- self.assertEqual(glyphNameToShortFileName("Acircumflexdieresis.swash.alt1", None), "A_circumflexdieresed24fb56.glif")
- self.assertEqual(glyphNameToShortFileName("F#weight0.800_width0.425", None), "F__weight0_800_width0_425.glif")
- self.assertEqual(glyphNameToShortFileName("F#weight0.83245511_width0.425693567", None), "F__weight0_8324551c9a4143c.glif")
- self.assertEqual(len(glyphNameToShortFileName("F#weight0.83245511_width0.425693567", None)), 31)
-
- def testShortFileNameScheme_clashes(self):
- # test for the condition in code.robofab.com ticket #5
- name1 = glyphNameToShortFileName('Adieresis', None)
- name2 = glyphNameToShortFileName('a_dieresis', None)
- self.assertNotEqual(name1, name2)
- name1 = glyphNameToShortFileName('AE', None)
- name2 = glyphNameToShortFileName('aE', None)
- self.assertNotEqual(name1, name2)
-
-
-if __name__ == "__main__":
- from robofab.test.testSupport import runTests
- import sys
- if len(sys.argv) > 1 and os.path.isdir(sys.argv[-1]):
- GLYPHSETDIR = sys.argv.pop()
- runTests()