fonttools/Tests/otlLib/optimize_test.py

47 lines
1.3 KiB
Python
Raw Normal View History

from pathlib import Path
from subprocess import run
from fontTools.ttLib import TTFont, newTable
from fontTools.feaLib.builder import addOpenTypeFeaturesFromString
def test_main(tmpdir: Path):
"""Check that calling the main function on an input TTF works."""
glyphs = ".notdef space A B C a b c".split()
features = """
lookup GPOS_EXT useExtension {
pos a b -10;
} GPOS_EXT;
feature kern {
pos A 20;
pos A B -50;
pos A B' 10 C;
lookup GPOS_EXT;
} kern;
"""
font = TTFont()
font.setGlyphOrder(glyphs)
addOpenTypeFeaturesFromString(font, features)
font["maxp"] = maxp = newTable("maxp")
maxp.tableVersion = 0x00010000
maxp.maxZones = 1
maxp.maxTwilightPoints = 0
maxp.maxStorage = 0
maxp.maxFunctionDefs = 0
maxp.maxInstructionDefs = 0
maxp.maxStackElements = 0
maxp.maxSizeOfInstructions = 0
maxp.maxComponentElements = 0
maxp.maxPoints = 0
maxp.maxContours = 0
maxp.maxCompositePoints = 0
maxp.maxCompositeContours = 0
maxp.maxComponentDepth = 0
maxp.compile(font)
input = tmpdir / "in.ttf"
font.save(str(input))
output = tmpdir / "out.ttf"
run(["fonttools", "otlLib.optimize", str(input), "-o", str(output)], check=True)
assert output.exists()