Tidy up spacing, make generic fea2fea checker
This commit is contained in:
parent
15f4cfa2d3
commit
7d01f365ea
@ -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):
|
||||
|
Loading…
x
Reference in New Issue
Block a user