Adding upstream version 1.8.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
c48d95b7fa
commit
e40b3259c1
2403 changed files with 153656 additions and 0 deletions
69
tests/setuplocalufotests.py
Normal file
69
tests/setuplocalufotests.py
Normal file
|
@ -0,0 +1,69 @@
|
|||
#!/usr/bin/env python
|
||||
''' Setup test based on locally-stored UFOs
|
||||
Reads from tests/localufos.csv which has format ufopath,type where
|
||||
- ufopath is the full path to the ufo
|
||||
- type is either:
|
||||
- "copy" to copy the ufo to local/ufotests/source (to protect against future changes to the ufo
|
||||
- "insitu" to use the uso from where it is, for ufos unlikely to be changed during a development cycle
|
||||
It should be run with stable pysilfont code prior to starting development and will create reference copies of the fonts
|
||||
by normalizing with checkfix=fix
|
||||
Once setup, "pytest local/ufotests" will again normalize all the fonts listed and compare with the reference fonts
|
||||
'''
|
||||
__url__ = 'https://github.com/silnrsi/pysilfont'
|
||||
__copyright__ = 'Copyright (c) 2018 SIL International (https://www.sil.org)'
|
||||
__license__ = 'Released under the MIT License (https://opensource.org/licenses/MIT)'
|
||||
__author__ = 'David Raymond'
|
||||
|
||||
from silfont.core import execute, csvreader
|
||||
import silfont.scripts.psfnormalize as psfnormalize
|
||||
import os, sys, shutil
|
||||
|
||||
# Check being run in pysilfont root directory
|
||||
cwd = os.getcwd()
|
||||
if os.path.split(cwd)[1] != "pysilfont":
|
||||
print("setupTestdata must be run in pysilfont root directory")
|
||||
sys.exit(1)
|
||||
|
||||
# Open config file
|
||||
cfg = csvreader("tests/localufos.csv")
|
||||
cfg.numfields=2
|
||||
|
||||
# Clear out any previous data and create directory tree
|
||||
if os.path.isdir("local/ufotests"): shutil.rmtree("local/ufotests")
|
||||
for type in ("source", "results", "reference", "logs"): os.makedirs("local/ufotests/" + type)
|
||||
|
||||
# Create source (for type=copy) and reference copies of the ufos
|
||||
ufolist = []
|
||||
for ufo,type in cfg:
|
||||
(path,ufoname) = os.path.split(ufo)
|
||||
logname = ufoname[:-4] + ".log"
|
||||
if not os.path.isdir(ufo):
|
||||
print (ufo + " is not a directory")
|
||||
continue
|
||||
if type == "copy":
|
||||
sourcedir = "local/ufotests/source/" + ufoname
|
||||
shutil.copytree(ufo, sourcedir)
|
||||
elif type == "insitu":
|
||||
sourcedir = ufo
|
||||
else:
|
||||
print("Invalid type '" + type + "' for " + ufo)
|
||||
continue
|
||||
|
||||
sys.argv = ["psfnormalize", sourcedir, "-l", "local/ufotests/results/" + logname, "-q", "-p", "checkfix=fix"]
|
||||
print("Normalizing " + sourcedir + " for reference")
|
||||
(args, font) = execute("UFO", psfnormalize.doit, psfnormalize.argspec, chain="first")
|
||||
font.write("local/ufotests/results/" + ufoname)
|
||||
# Move from results to reference - originally written to results to get reference log file correct
|
||||
os.rename("local/ufotests/results/" + ufoname, "local/ufotests/reference/" + ufoname)
|
||||
os.rename("local/ufotests/results/" + logname, "local/ufotests/reference/" + logname)
|
||||
#errorcount = args.logger.errorcount -1 if args.logger.errorcount else 0 # If there is an error, reduce count for extra error reporting that there were errors!
|
||||
ufolist.append((sourcedir, ufoname[:-4], str(args.logger.errorcount), str(args.logger.warningcount)))
|
||||
args.logger.logfile.close() # Make sure final log file is closed
|
||||
|
||||
# Create ufolist.csv
|
||||
ufofile = open("local/ufotests/ufolist.csv", "w")
|
||||
for line in ufolist:
|
||||
ufofile.write(",".join(line) + "\n")
|
||||
|
||||
# Copy the main test to local/ufotests
|
||||
shutil.copy("tests/runlocalufotests.py", "local/ufotests/test_localufos.py")
|
Loading…
Add table
Add a link
Reference in a new issue