def testGuessSmoothPen(self): glyphSet = GlyphSet(getDemoFontGlyphSetPath()) for name in glyphSet.keys(): digestPen = DigestPointPen() glyphSet[name].drawPoints(digestPen) digest1 = digestPen.getDigest() digestPen = DigestPointPen() pen = GuessSmoothPointPen(digestPen) glyphSet[name].drawPoints(pen) digest2 = digestPen.getDigest() self.assertEqual(digest1, digest2)
def run_ufolib_import_validation(self): """ ufoLib GlyphSet.readLayerInfo method performs validations of layerinfo.plist file(s) :return: (list) list of test failure Result objects """ ss = StdStreamer(self.ufopath) for glyphs_dir in self.ufoobj.glyphsdir_list: res = Result(glyphs_dir[1]) rel_dir_path = os.path.join(self.ufopath, glyphs_dir[1]) try: gs = GlyphSet(rel_dir_path, ufoFormatVersion=self.ufoversion) gs.readLayerInfo(self.layerinfo_obj) res.test_failed = False ss.stream_result(res) except Exception as e: res.test_failed = True res.test_long_stdstream_string = "layerinfo.plist in " + rel_dir_path + " failed ufoLib import test with error: " + str( e) self.test_fail_list.append(res) ss.stream_result(res) return self.test_fail_list
def run_all_glif_validations(ufoobj): glyphsdir_path_list = ufoobj.get_glyphsdir_path_list() ufoversion = ufoobj.get_ufo_version() ss = StdStreamer(ufoobj.ufopath) test_error_list = [] for glyphsdir in glyphsdir_path_list: # for each directory that containts .glif files print(" ") sys.stdout.write(" - " + glyphsdir + " ") sys.stdout.flush() res = Result(glyphsdir) try: gs = GlyphSet(glyphsdir, ufoFormatVersion=ufoversion, validateRead=True) # create a ufoLib GlyphSet # do not report success for this, previous testing has passed this except Exception as e: res.test_failed = True res.test_long_stdstream_string = " Failed to read glif file paths from " + glyphsdir + ". Error: " + str(e) ss.stream_result(res) test_error_list.append(res) break # break out loop as it was not possible to read the GlyphSet for this directory, gs not instantiated glif_count = 0 # reset glyphs directory .glif file counter for glyphname in gs.contents.keys(): # for each .glif file (read from glyph name in glyph set contents dict) res = Result(gs.contents[glyphname]) try: go = GlifObj() gs.readGlyph(glyphname, glyphObject=go) # read the glif file and perform ufoLib validations, requires the glyphObject for validations res.test_failed = False ss.stream_result(res) glif_count += 1 except Exception as e: res.test_failed = True filename = os.path.join(glyphsdir, glyphNameToFileName(glyphname, None)) res.test_long_stdstream_string = '{} (glyph "{}"): Test failed with error: {}'.format(filename, glyphname, e) ss.stream_result(res) test_error_list.append(res) glif_count += 1 print(" " + str(glif_count) + " .glif tests completed") return test_error_list
def testRebuildContents(self): gset = GlyphSet(GLYPHSETDIR) contents = gset.contents gset.rebuildContents() self.assertEqual(contents, gset.contents)
def testRebuildContents(self): gset = GlyphSet(GLYPHSETDIR, validateRead=True, validateWrite=True) contents = gset.contents gset.rebuildContents() self.assertEqual(contents, gset.contents)
import os try: from ufoLib.glifLib import GlyphSet except ImportError: from robofab.glifLib import GlyphSet import pkg_resources DATADIR = pkg_resources.resource_filename('cu2qu.test', 'data') CUBIC_GLYPHS = GlyphSet(os.path.join(DATADIR, 'cubic')) QUAD_GLYPHS = GlyphSet(os.path.join(DATADIR, 'quadratic')) import unittest # Python 3 renamed 'assertRaisesRegexp' to 'assertRaisesRegex', and fires # deprecation warnings if a program uses the old name. if not hasattr(unittest.TestCase, 'assertRaisesRegex'): unittest.TestCase.assertRaisesRegex = unittest.TestCase.assertRaisesRegexp
def testShapesFromGlyphSet(self): glyphSet = GlyphSet(getDemoFontGlyphSetPath()) for name in glyphSet.keys(): self._doTest(glyphSet[name].drawPoints, name)