Tidy up spacing, make generic fea2fea checker

This commit is contained in:
Martin Hosken 2017-01-06 12:38:14 +00:00 committed by Cosimo Lupo
parent 15f4cfa2d3
commit 7d01f365ea
No known key found for this signature in database
GPG Key ID: B61AAAD0B53A6419
2 changed files with 21 additions and 26 deletions

View File

@ -133,17 +133,21 @@ class BuilderTest(unittest.TestCase):
if tag in font:
font[tag].compile(font)
def check_fea2fea_file(self, name):
f = self.getpath("{}.fea".format(name))
p = Parser(f)
def check_fea2fea_file(self, name, base=None, parser=Parser):
if '.' not in name :
name = name + ".fea"
if base is None :
base = name
f = self.getpath(name)
p = parser(f)
doc = p.parse()
tlines = self.normal_fea(doc.asFea().split("\n"))
with open(f, "r", encoding="utf-8") as ofile:
with open(self.getpath(base), "r", encoding="utf-8") as ofile:
olines = self.normal_fea(ofile.readlines())
if olines != tlines:
for line in difflib.unified_diff(olines, tlines):
sys.stderr.write(line)
self.fail("Fea2Fea output is different from expected")
self.fail("Fea2Fea output is different from expected. Generated:\n{}\n".format("\n".join(tlines)))
def normal_fea(self, lines):
output = []
@ -377,7 +381,8 @@ class BuilderTest(unittest.TestCase):
if isinstance(self.base, ast.MarkClassName):
res = ""
for bcd in self.base.markClass.definitions:
if res != "" : res += "\n{}".format(indent)
if res != "":
res += "\n{}".format(indent)
res += "pos base {} {}".format(bcd.glyphs.asFea(), bcd.anchor.asFea())
for m in self.marks:
res += " mark @{}".format(m.name)
@ -437,17 +442,7 @@ class BuilderTest(unittest.TestCase):
}
ast = testAst()
f = self.getpath("baseClass.feax")
p = testParser(f)
#import pdb; pdb.set_trace()
doc = p.parse()
tlines = self.normal_fea(doc.asFea().split("\n"))
with open(self.getpath("baseClass.fea"), "r", encoding="utf-8") as ofile:
olines = self.normal_fea(ofile.readlines())
if olines != tlines:
for line in difflib.unified_diff(olines, tlines):
sys.stderr.write(line)
self.fail("Fea2Fea output is different from expected:\n{}".format("\n".join(tlines)))
self.check_fea2fea_file("baseClass.feax", base="baseClass.fea", parser=testParser)
def generate_feature_file_test(name):