Use fonttools's python package instead of cli

This commit is contained in:
Hamidreza Bayat 2020-07-26 17:16:07 +04:30 committed by Ebrahim Byagowi
parent bec3db49bd
commit 08fef15818
1 changed files with 8 additions and 8 deletions

View File

@ -12,14 +12,14 @@ import tempfile
import shutil import shutil
from subset_test_suite import SubsetTestSuite from subset_test_suite import SubsetTestSuite
try:
fonttools = shutil.which ("fonttools") from fontTools import ttx
ots_sanitize = shutil.which ("ots-sanitize") except ImportError:
if not fonttools:
print ("fonttools is not present, skipping test.") print ("fonttools is not present, skipping test.")
sys.exit (77) sys.exit (77)
ots_sanitize = shutil.which ("ots-sanitize")
def cmd (command): def cmd (command):
p = subprocess.Popen ( p = subprocess.Popen (
command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, command, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
@ -59,7 +59,7 @@ def run_test (test, should_check_ots):
return fail_test (test, cli_args, "%s returned %d" % (' '.join (cli_args), return_code)) return fail_test (test, cli_args, "%s returned %d" % (' '.join (cli_args), return_code))
expected_ttx = tempfile.mktemp () expected_ttx = tempfile.mktemp ()
_, return_code = run_ttx (os.path.join (test_suite.get_output_directory (), return_code = run_ttx (os.path.join (test_suite.get_output_directory (),
test.get_font_name ()), test.get_font_name ()),
expected_ttx) expected_ttx)
if return_code: if return_code:
@ -67,7 +67,7 @@ def run_test (test, should_check_ots):
return fail_test (test, cli_args, "ttx (expected) returned %d" % (return_code)) return fail_test (test, cli_args, "ttx (expected) returned %d" % (return_code))
actual_ttx = tempfile.mktemp () actual_ttx = tempfile.mktemp ()
_, return_code = run_ttx (out_file, actual_ttx) return_code = run_ttx (out_file, actual_ttx)
if return_code: if return_code:
if os.path.exists (expected_ttx): os.remove (expected_ttx) if os.path.exists (expected_ttx): os.remove (expected_ttx)
if os.path.exists (actual_ttx): os.remove (actual_ttx) if os.path.exists (actual_ttx): os.remove (actual_ttx)
@ -104,7 +104,7 @@ def run_test (test, should_check_ots):
def run_ttx (font_path, ttx_output_path): def run_ttx (font_path, ttx_output_path):
print ("fonttools ttx %s" % font_path) print ("fonttools ttx %s" % font_path)
return cmd ([fonttools, "ttx", "-q", "-o", ttx_output_path, font_path]) ttx.main (args=['-q', '-o', ttx_output_path, font_path])
def strip_check_sum (ttx_string): def strip_check_sum (ttx_string):
return re.sub ('checkSumAdjustment value=["]0x([0-9a-fA-F])+["]', return re.sub ('checkSumAdjustment value=["]0x([0-9a-fA-F])+["]',