from fontTools.ttLib import TTFont from fontTools.ttLib.ttVisitor import TTVisitor import os import pytest class TestVisitor(TTVisitor): def __init__(self): self.value = [] self.depth = 0 def _add(self, s): self.value.append(s) def visit(self, obj, target_depth): if self.depth == target_depth: self._add(obj) self.depth += 1 super().visit(obj, target_depth) self.depth -= 1 class TTVisitorTest(object): @staticmethod def getpath(testfile): path = os.path.dirname(__file__) return os.path.join(path, "data", testfile) def test_ttvisitor(self): font = TTFont(self.getpath("TestVGID-Regular.otf")) visitor = TestVisitor() # Count number of objects at depth 1: # That is, number of font tables, including GlyphOrder. visitor.visit(font, 1) assert len(visitor.value) == 14