47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
|
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()
|