Merge pull request #2100 from fonttools/switch-to-gha
Switch to GitHub Actions
This commit is contained in:
commit
ae07ce6e55
@ -1,56 +0,0 @@
|
|||||||
environment:
|
|
||||||
matrix:
|
|
||||||
- JOB: "3.7 64-bit"
|
|
||||||
PYTHON_HOME: "C:\\Python37-x64"
|
|
||||||
- JOB: "3.8 64-bit"
|
|
||||||
PYTHON_HOME: "C:\\Python38-x64"
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
# We want to build wip/* branches since these are not usually used for PRs
|
|
||||||
- /^wip\/.*$/
|
|
||||||
# We want to build version tags as well.
|
|
||||||
- /^\d+\.\d+.*$/
|
|
||||||
|
|
||||||
install:
|
|
||||||
# If there is a newer build queued for the same PR, cancel this one.
|
|
||||||
# The AppVeyor 'rollout builds' option is supposed to serve the same
|
|
||||||
# purpose but it is problematic because it tends to cancel builds pushed
|
|
||||||
# directly to master instead of just PR builds (or the converse).
|
|
||||||
# credits: JuliaLang developers.
|
|
||||||
- ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
|
|
||||||
https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
|
|
||||||
Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
|
|
||||||
throw "There are newer queued builds for this pull request, failing early." }
|
|
||||||
|
|
||||||
# Prepend Python to the PATH of this build
|
|
||||||
- "SET PATH=%PYTHON_HOME%;%PYTHON_HOME%\\Scripts;%PATH%"
|
|
||||||
|
|
||||||
# check that we have the expected version and architecture for Python
|
|
||||||
- "python --version"
|
|
||||||
- "python -c \"import struct; print(struct.calcsize('P') * 8)\""
|
|
||||||
|
|
||||||
# upgrade pip and setuptools to avoid out-of-date warnings
|
|
||||||
- "python -m pip install --disable-pip-version-check --user --upgrade pip setuptools virtualenv"
|
|
||||||
|
|
||||||
# install the dependencies to run the tests
|
|
||||||
- "python -m pip install tox"
|
|
||||||
|
|
||||||
build: false
|
|
||||||
|
|
||||||
test_script:
|
|
||||||
# run tests with the current 'python' in %PATH%, and measure test coverage
|
|
||||||
- "tox -e py-cov"
|
|
||||||
|
|
||||||
after_test:
|
|
||||||
# upload test coverage to Codecov.io
|
|
||||||
- "tox -e codecov"
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
- provider: Email
|
|
||||||
to:
|
|
||||||
- fonttools-dev@googlegroups.com
|
|
||||||
on_build_success: false
|
|
||||||
on_build_failure: true
|
|
||||||
on_build_status_changed: true
|
|
31
.github/workflows/publish.yml
vendored
Normal file
31
.github/workflows/publish.yml
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# This workflows will upload a Python Package using Twine when a tag is created
|
||||||
|
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
|
||||||
|
|
||||||
|
name: Upload Python Package
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
# Sequence of patterns matched against refs/tags
|
||||||
|
tags:
|
||||||
|
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
pip install setuptools wheel twine
|
||||||
|
- name: Build and publish
|
||||||
|
env:
|
||||||
|
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
|
||||||
|
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
|
||||||
|
run: |
|
||||||
|
python setup.py sdist bdist_wheel
|
||||||
|
twine upload dist/*
|
86
.github/workflows/test.yml
vendored
Normal file
86
.github/workflows/test.yml
vendored
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
name: Test
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [master]
|
||||||
|
pull_request:
|
||||||
|
branches: [master]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python 3.x
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: "3.x"
|
||||||
|
- name: Install packages
|
||||||
|
run: pip install tox
|
||||||
|
- name: Run Tox
|
||||||
|
run: tox -e mypy,package_readme
|
||||||
|
|
||||||
|
test:
|
||||||
|
runs-on: ${{ matrix.platform }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
python-version: [3.6, 3.7, 3.8, 3.9]
|
||||||
|
platform: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
|
exclude: # Only test on the oldest and latest supported stable Python on macOS and Windows.
|
||||||
|
- platform: macos-latest
|
||||||
|
python-version: 3.7
|
||||||
|
- platform: macos-latest
|
||||||
|
python-version: 3.8
|
||||||
|
- platform: windows-latest
|
||||||
|
python-version: 3.7
|
||||||
|
- platform: windows-latest
|
||||||
|
python-version: 3.8
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
- name: Install packages
|
||||||
|
run: pip install tox coverage
|
||||||
|
- name: Run Tox
|
||||||
|
run: tox -e py-cov
|
||||||
|
- name: Run Tox without lxml
|
||||||
|
run: tox -e py-cov-nolxml
|
||||||
|
- name: Produce coverage files
|
||||||
|
run: |
|
||||||
|
coverage combine
|
||||||
|
coverage xml
|
||||||
|
- name: Upload coverage to Codecov
|
||||||
|
uses: codecov/codecov-action@v1
|
||||||
|
with:
|
||||||
|
file: coverage.xml
|
||||||
|
flags: unittests
|
||||||
|
name: codecov-umbrella
|
||||||
|
fail_ci_if_error: true
|
||||||
|
|
||||||
|
test-cython:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python 3.x
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: "3.x"
|
||||||
|
- name: Install packages
|
||||||
|
run: pip install tox
|
||||||
|
- name: Run Tox
|
||||||
|
run: tox -e py-cy-nolxml
|
||||||
|
|
||||||
|
test-pypy3:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python pypy3
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: "pypy3"
|
||||||
|
- name: Install packages
|
||||||
|
run: pip install tox
|
||||||
|
- name: Run Tox
|
||||||
|
run: tox -e pypy3-nolxml
|
90
.travis.yml
90
.travis.yml
@ -1,90 +0,0 @@
|
|||||||
dist: xenial
|
|
||||||
language: python
|
|
||||||
python: 3.6
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- TWINE_USERNAME="anthrotype"
|
|
||||||
- secure: PJuCmlDuwnojiw3QuDhfNAaU4f/yeJcEcRzJAudA66bwZK7hvxV7Tiy9A17Bm6yO0HbJmmyjsIr8h2e7/PyY6QCaV8RqcMDkQ0UraU16pRsihp0giVXJoWscj2sCP4cNDOBVwSaGAX8yZ2OONc5srESywghzcy8xmgw6O+XFqx4=
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
# We want to build wip/* branches since these are not usually used for PRs
|
|
||||||
- /^wip\/.*$/
|
|
||||||
# We want to build version tags as well.
|
|
||||||
- /^\d+\.\d+.*$/
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
fast_finish: true
|
|
||||||
include:
|
|
||||||
- python: 3.6
|
|
||||||
env:
|
|
||||||
- TOXENV=mypy
|
|
||||||
- python: 3.6
|
|
||||||
env:
|
|
||||||
- TOXENV=py36-cov,package_readme
|
|
||||||
- BUILD_DIST=true
|
|
||||||
- python: 3.7
|
|
||||||
env: TOXENV=py37-cov
|
|
||||||
- python: 3.8
|
|
||||||
env: TOXENV=py38-cov
|
|
||||||
- python: 3.8
|
|
||||||
env: TOXENV=py38-cy
|
|
||||||
- python: pypy3
|
|
||||||
# disable coverage.py on pypy because of performance problems
|
|
||||||
env: TOXENV=pypy3
|
|
||||||
dist: xenial
|
|
||||||
- language: generic
|
|
||||||
os: osx
|
|
||||||
env:
|
|
||||||
- TOXENV=py3-cov
|
|
||||||
- HOMEBREW_NO_AUTO_UPDATE=1
|
|
||||||
allow_failures:
|
|
||||||
# We use fast_finish + allow_failures because OSX builds take forever
|
|
||||||
# https://blog.travis-ci.com/2013-11-27-fast-finishing-builds
|
|
||||||
- language: generic
|
|
||||||
os: osx
|
|
||||||
env:
|
|
||||||
- TOXENV=py3-cov
|
|
||||||
- HOMEBREW_NO_AUTO_UPDATE=1
|
|
||||||
|
|
||||||
cache:
|
|
||||||
- pip
|
|
||||||
- directories:
|
|
||||||
- $HOME/.pyenv_cache
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- language-pack-de
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- source ./.travis/before_install.sh
|
|
||||||
|
|
||||||
install:
|
|
||||||
- ./.travis/install.sh
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ./.travis/run.sh
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ./.travis/after_success.sh
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
irc: "irc.freenode.org##fonts"
|
|
||||||
email: fonttools-dev@googlegroups.com
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
# deploy to Github Releases on tags
|
|
||||||
- provider: releases
|
|
||||||
api_key:
|
|
||||||
secure: KEcWhJxMcnKay7wmWJCpg2W5GWHTQ+LaRbqGM11IKGcQuEOFxWuG7W1xjGpVdKPj/MQ+cG0b9hGUFpls1hwseOA1HANMv4xjCgYkuvT1OdpX/KOcZ7gfe/qaovzVxHyP9xwohnHSJMb790t37fmDfFUSROx3iEexIX09LLoDjO8=
|
|
||||||
skip_cleanup: true
|
|
||||||
file_glob: true
|
|
||||||
file: "dist/*"
|
|
||||||
on:
|
|
||||||
tags: true
|
|
||||||
repo: fonttools/fonttools
|
|
||||||
all_branches: true
|
|
||||||
condition: "$BUILD_DIST == true"
|
|
@ -1,16 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
|
||||||
source .venv/bin/activate
|
|
||||||
fi
|
|
||||||
|
|
||||||
# upload coverage data to Codecov.io
|
|
||||||
[[ ${TOXENV} == *"-cov"* ]] && tox -e codecov
|
|
||||||
|
|
||||||
# if tagged commit, create distribution packages and deploy to PyPI
|
|
||||||
if [ -n "$TRAVIS_TAG" ] && [ "$TRAVIS_REPO_SLUG" == "fonttools/fonttools" ] && [ "$BUILD_DIST" == true ]; then
|
|
||||||
tox -e pypi
|
|
||||||
fi
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [[ -n "$PYENV_VERSION" ]]; then
|
|
||||||
wget https://github.com/praekeltfoundation/travis-pyenv/releases/download/${TRAVIS_PYENV_VERSION}/setup-pyenv.sh
|
|
||||||
source setup-pyenv.sh
|
|
||||||
fi
|
|
@ -1,30 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
ci_requirements="pip setuptools tox"
|
|
||||||
|
|
||||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
|
||||||
if [[ ${TOXENV} == *"py27"* ]]; then
|
|
||||||
# install pip on the system python
|
|
||||||
curl -O https://bootstrap.pypa.io/get-pip.py
|
|
||||||
python get-pip.py --user
|
|
||||||
python -m pip install --user virtualenv
|
|
||||||
python -m virtualenv .venv/
|
|
||||||
elif [[ ${TOXENV} == *"py3"* ]]; then
|
|
||||||
# install current python3 with homebrew
|
|
||||||
# NOTE: the formula is now named just "python"
|
|
||||||
brew install python
|
|
||||||
command -v python3
|
|
||||||
python3 --version
|
|
||||||
python3 -m pip install virtualenv
|
|
||||||
python3 -m virtualenv .venv/
|
|
||||||
else
|
|
||||||
echo "unsupported $TOXENV: "${TOXENV}
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
source .venv/bin/activate
|
|
||||||
fi
|
|
||||||
|
|
||||||
python -m pip install --upgrade $ci_requirements
|
|
@ -1,20 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
|
||||||
source .venv/bin/activate
|
|
||||||
fi
|
|
||||||
|
|
||||||
tox --skip-missing-interpreters false
|
|
||||||
|
|
||||||
# re-run all the XML-related tests, this time without lxml but using the
|
|
||||||
# built-in ElementTree library.
|
|
||||||
if [ -z "$TOXENV" ]; then
|
|
||||||
TOXENV="py-nolxml"
|
|
||||||
else
|
|
||||||
# strip additional tox envs after the comma, add -nolxml factor
|
|
||||||
TOXENV="${TOXENV%,*}-nolxml"
|
|
||||||
fi
|
|
||||||
tox --skip-missing-interpreters false -e $TOXENV -- Tests/ufoLib Tests/misc/etree_test.py Tests/misc/plistlib_test.py
|
|
@ -45,10 +45,15 @@ class BuildTest(unittest.TestCase):
|
|||||||
if self.tempdir:
|
if self.tempdir:
|
||||||
shutil.rmtree(self.tempdir)
|
shutil.rmtree(self.tempdir)
|
||||||
|
|
||||||
@staticmethod
|
def get_test_input(self, test_file_or_folder, copy=False):
|
||||||
def get_test_input(test_file_or_folder):
|
parent_dir = os.path.dirname(__file__)
|
||||||
path, _ = os.path.split(__file__)
|
path = os.path.join(parent_dir, "data", test_file_or_folder)
|
||||||
return os.path.join(path, "data", test_file_or_folder)
|
if copy:
|
||||||
|
copied_path = os.path.join(self.tempdir, test_file_or_folder)
|
||||||
|
shutil.copy2(path, copied_path)
|
||||||
|
return copied_path
|
||||||
|
else:
|
||||||
|
return path
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_test_output(test_file_or_folder):
|
def get_test_output(test_file_or_folder):
|
||||||
@ -314,11 +319,12 @@ class BuildTest(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def test_varlib_nonmarking_CFF2(self):
|
def test_varlib_nonmarking_CFF2(self):
|
||||||
ds_path = self.get_test_input('TestNonMarkingCFF2.designspace')
|
self.temp_dir()
|
||||||
|
|
||||||
|
ds_path = self.get_test_input('TestNonMarkingCFF2.designspace', copy=True)
|
||||||
ttx_dir = self.get_test_input("master_non_marking_cff2")
|
ttx_dir = self.get_test_input("master_non_marking_cff2")
|
||||||
expected_ttx_path = self.get_test_output("TestNonMarkingCFF2.ttx")
|
expected_ttx_path = self.get_test_output("TestNonMarkingCFF2.ttx")
|
||||||
|
|
||||||
self.temp_dir()
|
|
||||||
for path in self.get_file_list(ttx_dir, '.ttx', 'TestNonMarkingCFF2_'):
|
for path in self.get_file_list(ttx_dir, '.ttx', 'TestNonMarkingCFF2_'):
|
||||||
self.compile_font(path, ".otf", self.tempdir)
|
self.compile_font(path, ".otf", self.tempdir)
|
||||||
|
|
||||||
@ -336,11 +342,12 @@ class BuildTest(unittest.TestCase):
|
|||||||
self.expect_ttx(varfont, expected_ttx_path, tables)
|
self.expect_ttx(varfont, expected_ttx_path, tables)
|
||||||
|
|
||||||
def test_varlib_build_CFF2(self):
|
def test_varlib_build_CFF2(self):
|
||||||
ds_path = self.get_test_input('TestCFF2.designspace')
|
self.temp_dir()
|
||||||
|
|
||||||
|
ds_path = self.get_test_input('TestCFF2.designspace', copy=True)
|
||||||
ttx_dir = self.get_test_input("master_cff2")
|
ttx_dir = self.get_test_input("master_cff2")
|
||||||
expected_ttx_path = self.get_test_output("BuildTestCFF2.ttx")
|
expected_ttx_path = self.get_test_output("BuildTestCFF2.ttx")
|
||||||
|
|
||||||
self.temp_dir()
|
|
||||||
for path in self.get_file_list(ttx_dir, '.ttx', 'TestCFF2_'):
|
for path in self.get_file_list(ttx_dir, '.ttx', 'TestCFF2_'):
|
||||||
self.compile_font(path, ".otf", self.tempdir)
|
self.compile_font(path, ".otf", self.tempdir)
|
||||||
|
|
||||||
@ -358,11 +365,12 @@ class BuildTest(unittest.TestCase):
|
|||||||
self.expect_ttx(varfont, expected_ttx_path, tables)
|
self.expect_ttx(varfont, expected_ttx_path, tables)
|
||||||
|
|
||||||
def test_varlib_build_CFF2_from_CFF2(self):
|
def test_varlib_build_CFF2_from_CFF2(self):
|
||||||
ds_path = self.get_test_input('TestCFF2Input.designspace')
|
self.temp_dir()
|
||||||
|
|
||||||
|
ds_path = self.get_test_input('TestCFF2Input.designspace', copy=True)
|
||||||
ttx_dir = self.get_test_input("master_cff2_input")
|
ttx_dir = self.get_test_input("master_cff2_input")
|
||||||
expected_ttx_path = self.get_test_output("BuildTestCFF2.ttx")
|
expected_ttx_path = self.get_test_output("BuildTestCFF2.ttx")
|
||||||
|
|
||||||
self.temp_dir()
|
|
||||||
for path in self.get_file_list(ttx_dir, '.ttx', 'TestCFF2_'):
|
for path in self.get_file_list(ttx_dir, '.ttx', 'TestCFF2_'):
|
||||||
self.compile_font(path, ".otf", self.tempdir)
|
self.compile_font(path, ".otf", self.tempdir)
|
||||||
|
|
||||||
@ -380,11 +388,12 @@ class BuildTest(unittest.TestCase):
|
|||||||
self.expect_ttx(varfont, expected_ttx_path, tables)
|
self.expect_ttx(varfont, expected_ttx_path, tables)
|
||||||
|
|
||||||
def test_varlib_build_sparse_CFF2(self):
|
def test_varlib_build_sparse_CFF2(self):
|
||||||
ds_path = self.get_test_input('TestSparseCFF2VF.designspace')
|
self.temp_dir()
|
||||||
|
|
||||||
|
ds_path = self.get_test_input('TestSparseCFF2VF.designspace', copy=True)
|
||||||
ttx_dir = self.get_test_input("master_sparse_cff2")
|
ttx_dir = self.get_test_input("master_sparse_cff2")
|
||||||
expected_ttx_path = self.get_test_output("TestSparseCFF2VF.ttx")
|
expected_ttx_path = self.get_test_output("TestSparseCFF2VF.ttx")
|
||||||
|
|
||||||
self.temp_dir()
|
|
||||||
for path in self.get_file_list(ttx_dir, '.ttx', 'MasterSet_Kanji-'):
|
for path in self.get_file_list(ttx_dir, '.ttx', 'MasterSet_Kanji-'):
|
||||||
self.compile_font(path, ".otf", self.tempdir)
|
self.compile_font(path, ".otf", self.tempdir)
|
||||||
|
|
||||||
@ -402,11 +411,12 @@ class BuildTest(unittest.TestCase):
|
|||||||
self.expect_ttx(varfont, expected_ttx_path, tables)
|
self.expect_ttx(varfont, expected_ttx_path, tables)
|
||||||
|
|
||||||
def test_varlib_build_vpal(self):
|
def test_varlib_build_vpal(self):
|
||||||
ds_path = self.get_test_input('test_vpal.designspace')
|
self.temp_dir()
|
||||||
|
|
||||||
|
ds_path = self.get_test_input('test_vpal.designspace', copy=True)
|
||||||
ttx_dir = self.get_test_input("master_vpal_test")
|
ttx_dir = self.get_test_input("master_vpal_test")
|
||||||
expected_ttx_path = self.get_test_output("test_vpal.ttx")
|
expected_ttx_path = self.get_test_output("test_vpal.ttx")
|
||||||
|
|
||||||
self.temp_dir()
|
|
||||||
for path in self.get_file_list(ttx_dir, '.ttx', 'master_vpal_test_'):
|
for path in self.get_file_list(ttx_dir, '.ttx', 'master_vpal_test_'):
|
||||||
self.compile_font(path, ".otf", self.tempdir)
|
self.compile_font(path, ".otf", self.tempdir)
|
||||||
|
|
||||||
@ -494,11 +504,12 @@ class BuildTest(unittest.TestCase):
|
|||||||
self.expect_ttx(varfont, expected_ttx_path, tables)
|
self.expect_ttx(varfont, expected_ttx_path, tables)
|
||||||
|
|
||||||
def test_varlib_build_from_ttf_paths(self):
|
def test_varlib_build_from_ttf_paths(self):
|
||||||
ds_path = self.get_test_input("Build.designspace")
|
self.temp_dir()
|
||||||
|
|
||||||
|
ds_path = self.get_test_input("Build.designspace", copy=True)
|
||||||
ttx_dir = self.get_test_input("master_ttx_interpolatable_ttf")
|
ttx_dir = self.get_test_input("master_ttx_interpolatable_ttf")
|
||||||
expected_ttx_path = self.get_test_output("BuildMain.ttx")
|
expected_ttx_path = self.get_test_output("BuildMain.ttx")
|
||||||
|
|
||||||
self.temp_dir()
|
|
||||||
for path in self.get_file_list(ttx_dir, '.ttx', 'TestFamily-'):
|
for path in self.get_file_list(ttx_dir, '.ttx', 'TestFamily-'):
|
||||||
self.compile_font(path, ".ttf", self.tempdir)
|
self.compile_font(path, ".ttf", self.tempdir)
|
||||||
|
|
||||||
@ -643,12 +654,13 @@ class BuildTest(unittest.TestCase):
|
|||||||
assert all(tag in mvar_tags for tag in fontTools.varLib.mvar.MVAR_ENTRIES)
|
assert all(tag in mvar_tags for tag in fontTools.varLib.mvar.MVAR_ENTRIES)
|
||||||
|
|
||||||
def test_varlib_build_VVAR_CFF2(self):
|
def test_varlib_build_VVAR_CFF2(self):
|
||||||
ds_path = self.get_test_input('TestVVAR.designspace')
|
self.temp_dir()
|
||||||
|
|
||||||
|
ds_path = self.get_test_input('TestVVAR.designspace', copy=True)
|
||||||
ttx_dir = self.get_test_input("master_vvar_cff2")
|
ttx_dir = self.get_test_input("master_vvar_cff2")
|
||||||
expected_ttx_name = 'TestVVAR'
|
expected_ttx_name = 'TestVVAR'
|
||||||
suffix = '.otf'
|
suffix = '.otf'
|
||||||
|
|
||||||
self.temp_dir()
|
|
||||||
for path in self.get_file_list(ttx_dir, '.ttx', 'TestVVAR'):
|
for path in self.get_file_list(ttx_dir, '.ttx', 'TestVVAR'):
|
||||||
font, savepath = self.compile_font(path, suffix, self.tempdir)
|
font, savepath = self.compile_font(path, suffix, self.tempdir)
|
||||||
|
|
||||||
@ -668,12 +680,13 @@ class BuildTest(unittest.TestCase):
|
|||||||
self.check_ttx_dump(varfont, expected_ttx_path, tables, suffix)
|
self.check_ttx_dump(varfont, expected_ttx_path, tables, suffix)
|
||||||
|
|
||||||
def test_varlib_build_BASE(self):
|
def test_varlib_build_BASE(self):
|
||||||
ds_path = self.get_test_input('TestBASE.designspace')
|
self.temp_dir()
|
||||||
|
|
||||||
|
ds_path = self.get_test_input('TestBASE.designspace', copy=True)
|
||||||
ttx_dir = self.get_test_input("master_base_test")
|
ttx_dir = self.get_test_input("master_base_test")
|
||||||
expected_ttx_name = 'TestBASE'
|
expected_ttx_name = 'TestBASE'
|
||||||
suffix = '.otf'
|
suffix = '.otf'
|
||||||
|
|
||||||
self.temp_dir()
|
|
||||||
for path in self.get_file_list(ttx_dir, '.ttx', 'TestBASE'):
|
for path in self.get_file_list(ttx_dir, '.ttx', 'TestBASE'):
|
||||||
font, savepath = self.compile_font(path, suffix, self.tempdir)
|
font, savepath = self.compile_font(path, suffix, self.tempdir)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user