summaryrefslogtreecommitdiff
path: root/misc/pylib/robofab/test/test_objectsUFO.py
diff options
context:
space:
mode:
Diffstat (limited to 'misc/pylib/robofab/test/test_objectsUFO.py')
-rwxr-xr-xmisc/pylib/robofab/test/test_objectsUFO.py203
1 files changed, 0 insertions, 203 deletions
diff --git a/misc/pylib/robofab/test/test_objectsUFO.py b/misc/pylib/robofab/test/test_objectsUFO.py
deleted file mode 100755
index c974a121c..000000000
--- a/misc/pylib/robofab/test/test_objectsUFO.py
+++ /dev/null
@@ -1,203 +0,0 @@
-"""This test suite for ufo glyph methods"""
-
-
-import unittest
-import os
-import tempfile
-import shutil
-
-from robofab.objects.objectsRF import RFont
-from robofab.test.testSupport import getDemoFontPath
-from robofab.pens.digestPen import DigestPointPen
-from robofab.pens.adapterPens import SegmentToPointPen, FabToFontToolsPenAdapter
-
-
-class ContourMethodsTestCase(unittest.TestCase):
-
- def setUp(self):
- self.font = RFont(getDemoFontPath())
-
- def testReverseContour(self):
- for glyph in self.font:
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest1 = pen.getDigest()
- for contour in glyph:
- contour.reverseContour()
- contour.reverseContour()
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest2 = pen.getDigest()
- self.assertEqual(digest1, digest2, "%r not the same after reversing twice" % glyph.name)
-
- def testStartSegment(self):
- for glyph in self.font:
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest1 = pen.getDigest()
- for contour in glyph:
- contour.setStartSegment(2)
- contour.setStartSegment(-2)
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest2 = pen.getDigest()
- self.assertEqual(digest1, digest2, "%r not the same after seting start segment twice" % glyph.name)
-
- def testAppendSegment(self):
- for glyph in self.font:
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest1 = pen.getDigest()
- for contour in glyph:
- contour.insertSegment(2, "curve", [(100, 100), (200, 200), (300, 300)])
- contour.removeSegment(2)
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest2 = pen.getDigest()
- self.assertEqual(digest1, digest2, "%r not the same after inserting and removing segment" % glyph.name)
-
-
-class GlyphsMethodsTestCase(ContourMethodsTestCase):
-
- def testCopyGlyph(self):
- for glyph in self.font:
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest1 = pen.getDigest()
- copy = glyph.copy()
- pen = DigestPointPen()
- copy.drawPoints(pen)
- digest2 = pen.getDigest()
- self.assertEqual(digest1, digest2, "%r not the same after copying" % glyph.name)
- self.assertEqual(glyph.lib, copy.lib, "%r's lib not the same after copying" % glyph.name)
- self.assertEqual(glyph.width, copy.width, "%r's width not the same after copying" % glyph.name)
- self.assertEqual(glyph.unicodes, copy.unicodes, "%r's unicodes not the same after copying" % glyph.name)
-
- def testMoveGlyph(self):
- for glyph in self.font:
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest1 = pen.getDigest()
- glyph.move((100, 200))
- glyph.move((-100, -200))
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest2 = pen.getDigest()
- self.assertEqual(digest1, digest2, "%r not the same after moving twice" % glyph.name)
-
- def testScaleGlyph(self):
- for glyph in self.font:
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest1 = pen.getDigest()
- glyph.scale((2, 2))
- glyph.scale((.5, .5))
- pen = DigestPointPen()
- glyph.drawPoints(pen)
- digest2 = pen.getDigest()
- self.assertEqual(digest1, digest2, "%r not the same after scaling twice" % glyph.name)
-
- def testSegmentPenInterface(self):
- for glyph in self.font:
- digestPen = DigestPointPen(ignoreSmoothAndName=True)
- pen = SegmentToPointPen(digestPen)
- glyph.draw(pen)
- digest1 = digestPen.getDigest()
- digestPen = DigestPointPen(ignoreSmoothAndName=True)
- glyph.drawPoints(digestPen)
- digest2 = digestPen.getDigest()
- self.assertEqual(digest1, digest2, "%r not the same for gl.draw() and gl.drawPoints()" % glyph.name)
-
- def testFabPenCompatibility(self):
- for glyph in self.font:
- digestPen = DigestPointPen(ignoreSmoothAndName=True)
- pen = FabToFontToolsPenAdapter(SegmentToPointPen(digestPen))
- glyph.draw(pen)
- digest1 = digestPen.getDigest()
- digestPen = DigestPointPen(ignoreSmoothAndName=True)
- glyph.drawPoints(digestPen)
- digest2 = digestPen.getDigest()
- self.assertEqual(digest1, digest2, "%r not the same for gl.draw() and gl.drawPoints()" % glyph.name)
-
- def testComponentTransformations(self):
- from robofab.objects.objectsRF import RComponent
- name = "baseGlyphName"
- c = RComponent(name, transform=(1,0,0,1,0,0))
- # get values
- assert c.baseGlyph == "baseGlyphName"
- assert c.transformation == c.transformation
- assert c.scale == (1,1)
- assert c.offset == (0,0)
- # set values
- c.offset = (12,34)
- assert c.transformation == (1, 0, 0, 1, 12, 34)
- c.offset = (0,0)
- assert c.transformation == (1,0,0,1,0,0)
- c.scale = (12,34)
- assert c.transformation == (12, 0, 0, 34, 0, 0)
-
-
-class SaveTestCase(ContourMethodsTestCase):
-
- def testSaveAs(self):
- path = tempfile.mktemp(".ufo")
- try:
- keys1 = self.font.keys()
- self.font.save(path)
- keys2 = self.font.keys()
- keys1.sort()
- keys2.sort()
- self.assertEqual(keys1, keys2)
- self.assertEqual(self.font.path, path)
- font2 = RFont(path)
- keys3 = font2.keys()
- keys3.sort()
- self.assertEqual(keys1, keys3)
- finally:
- if os.path.exists(path):
- shutil.rmtree(path)
-
- def testSaveAs2(self):
- path = tempfile.mktemp(".ufo")
- # copy a glyph
- self.font["X"] = self.font["a"].copy()
-# self.assertEqual(self.font["X"].name, "X")
- # remove a glyph
- self.font.removeGlyph("a")
- keys1 = self.font.keys()
- try:
- self.font.save(path)
- self.assertEqual(self.font.path, path)
- keys2 = self.font.keys()
- keys1.sort()
- keys2.sort()
- self.assertEqual(keys1, keys2)
- font2 = RFont(path)
- keys3 = font2.keys()
- keys3.sort()
- self.assertEqual(keys1, keys3)
- finally:
- if os.path.exists(path):
- shutil.rmtree(path)
-
- def testCustomFileNameScheme(self):
- path = tempfile.mktemp(".ufo")
- libKey = "org.robofab.glyphNameToFileNameFuncName"
- self.font.lib[libKey] = "robofab.test.test_objectsUFO.testGlyphNameToFileName"
- try:
- self.font.save(path)
- self.assertEqual(os.path.exists(os.path.join(path,
- "glyphs", "test_a.glif")), True)
- finally:
- if os.path.exists(path):
- shutil.rmtree(path)
-
-
-def testGlyphNameToFileName(glyphName, glyphSet):
- from robofab.glifLib import glyphNameToFileName
- return "test_" + glyphNameToFileName(glyphName, glyphSet)
-
-
-if __name__ == "__main__":
- from robofab.test.testSupport import runTests
- runTests()