3356 Commits

Author SHA1 Message Date
Cosimo Lupo
8ea5587afe
.appveyor.yml: drop py34; run coverage and upload to codecov
We no longer run tests on python3.4 on Windows; 2.7 and 3.5 are enough for Windows I believe.
We do test python3.4 on Linux (not for long, I hope).

We shall add 3.6 when Appveyor provides that by default.
2016-12-26 18:38:38 +00:00
Cosimo Lupo
4fcbebcb38
.travis/*.sh: use homebrew python3 instead of compiling python3 from source with pyenv
This should speed it up a bit, as brew will download a pre-compiled "bottle", whereas pyenv compiles python from source.

The current 'python3' formula on homebrew is 3.6.0, so let's use that.
2016-12-26 18:38:37 +00:00
Cosimo Lupo
17706a4f94
.travis/after_success.sh: upload combined coverage data to codecov.io for each build
Previously we were using a separate Travis build that only run coverage with a single Python version (3.5).
Now, we run coverage with all python versions, and upload a combined coverage data to Codecov.io.
2016-12-26 18:35:20 +00:00
Cosimo Lupo
454f60f7b6
tox.ini: use coverage.py instead of pytest-cov; run in --parallel-mode; use codecov instead of coveralls
We no longer use coverage.py through the pytest-cov plugin, as it does not
support --parallel-mode (or at least I wasn't able to figure it out).
We run pytest through `coverage run -m pytest` instead, which does the same
as `pytest --cov`.

Running `tox` locally by default will now run pytest and coverage on 2.7, 3.5 and 3.6; it will then
combine coverage data from all three, and finally generate a coverage report in htmlcov/index.html

We need tp temporarily install coverage.py from the mercurial repo instead of the latest release
because we require a patch that is not available yet with coverage 4.2:
https://bitbucket.org/ned/coveragepy/pull-requests/118/check-source-isdir-not-just-exists-there/diff

Finally, I replaced Coveralls with Codecov, as the latter is better designed and also supports Appveyor.
2016-12-26 18:32:26 +00:00
Cosimo Lupo
c65a6548bd
.travis.yml: run tests with coverage for all pythons, not just 3.5
Running coverage.py on pypy takes twice as long, not worth it.
2016-12-26 18:32:25 +00:00
Cosimo Lupo
524a365b4e
.gitignore: add .coverage.* files, generated by coverage run --parallel-mode ... 2016-12-26 13:57:13 +00:00
Cosimo Lupo
9ee3e37136
.coveragerc: run coverage.py on installed package, and combine equivalent 'paths'
previously we were running coverage.py on the source directory itself, whereas now we run it on the installed fontTools package, so the different but equivalent paths need to be unified with `coverage combine`
2016-12-26 13:37:51 +00:00
Cosimo Lupo
681222d68f Merge pull request #785 from anthrotype/travis-py36
drop support for jython; add support for python3.6
2016-12-25 18:18:11 +00:00
Cosimo Lupo
b48129cb9d
.travis/before_deploy.sh: no longer activate virtual env; pip install wheel
Note that we already update setuptools (for the sdist) in .travis/install.sh
2016-12-25 18:09:32 +00:00
Cosimo Lupo
2edbed92f8
.travis/run.sh: use pyenv only on osx; run tox as module 2016-12-25 18:09:10 +00:00
Cosimo Lupo
dcf246a356
.travis/install.sh: simplify; drop jython; don't use pyenv on Linux, use default Travis pypy
Since tox already creates its own test environment, so there's no need to create another virtual environment to install tox into.
This simplifies things a bit.
2016-12-25 18:08:29 +00:00
Cosimo Lupo
667e291501
tox.ini: add py36 to env list
Running `tox` locally will run tests on 2.7, 3.5 and 3.6, by default; in any of these is not found, it will be skipped.
2016-12-25 18:08:00 +00:00
Cosimo Lupo
6125d0190d
.travis.yml: add Python 3.6; remove Jython 2016-12-25 18:07:35 +00:00
Behdad Esfahbod
e90f9b7d58 [symfont] Minor 2016-12-22 16:11:04 -06:00
Cosimo Lupo
1f086bb230
Bump version: 3.4.0 → 3.4.1.dev0 2016-12-21 18:13:54 +00:00
Cosimo Lupo
94cb10a796
setup.py: fix typo in trove classifiers
which made the deployment to PyPI fail:
https://travis-ci.org/fonttools/fonttools/jobs/185813647#L5650
2016-12-21 16:26:02 +00:00
Cosimo Lupo
fc7cc64e81
Release 3.4.0 2016-12-21 16:08:55 +00:00
Cosimo Lupo
07b6d7758e Merge pull request #784 from anthrotype/xml-test-tools
[testTools] have getXML() return a list of lines
2016-12-21 14:30:55 +00:00
Cosimo Lupo
dd5e9a8a28
testTools: fix failing tests on Python 3.4
Apparently b"string %s" % (b"interpolation") works on Python 3.5 but not on 3.4.

We whall maybe start thinking about dropping support for 3.4, now that 3.6 is out next week...
2016-12-21 14:12:43 +00:00
Cosimo Lupo
689d0c3fe4
set maxDiff=None attribute only once, using setUpClass method of unittest.TestCase 2016-12-21 13:57:44 +00:00
Cosimo Lupo
f112a05be2
adjust unit tests to expect a list of strings from getXML() 2016-12-21 13:57:44 +00:00
Cosimo Lupo
dff319f14e
testTools_test: add test for getXML; test bytes, unicode and list input for parseXML 2016-12-21 13:57:39 +00:00
Cosimo Lupo
540f0c32b4
testTools: getXML returns a list of strings; parseXML also accepts both a string or list of strings
When writing unit tests for XML data, it is more convenient to compare
list of lines, instead of a single string without newlines.

This helps identifying which lines in the diff printed on the console
don't match the expected result.

So, getXML now returns a list of lines,

To allow passing the same list of lines to the complementary parseXML
function in the roundtrip tests, parseXML now also accepts a list of
strings, as well as a single string.

We also use unicode_literals, and ensure that if the test modules passes
unicode str, we first encode to UTF-8 before passing on to expat XML
parser. This is because on Python 2, expat only accepts bytes strings.
2016-12-21 13:57:33 +00:00
Denis Moyogo Jacquerye
d2f5c63fef STAT: test_compile_* tests (#783) 2016-12-21 10:53:32 +01:00
Denis Moyogo Jacquerye
71df2fe7d5 Add MVAR tests (#781)
* MVAR: add decompile_toXML test

* MVAR: add test_compile_fromXML

* M_V_A_R_test.py: if __name__ == '__main__'
2016-12-21 08:33:55 +01:00
Cosimo Lupo
fea1b7287c
setup.py: change from 'Beta' to 'Production/Stable' in pypi trove classifiers, and add the 'Fonts' topic 2016-12-20 17:41:07 +00:00
Cosimo Lupo
4e8130b5e5
Update NEWS
Could we set a rule that, before merging a PR, we request the submitter
to write a short sentence at the top of the changelog?
2016-12-20 15:53:36 +00:00
Cosimo Lupo
ca9c16baeb
NEWS: write tag date on a different line so services like pyup.io can parse the changelog
https://pyup.io/changelogs/fonttools/
2016-12-20 15:38:16 +00:00
Cosimo Lupo
464fece4a4
setup.py: add "Python 3" to PyPI Trove Classifiers, otherwise we don't show up as PY3 compatible
but we are!
2016-12-20 14:53:54 +00:00
Cosimo Lupo
be6afae761
builder_test: add test for omitted class definitions 2016-12-20 13:27:03 +00:00
Cosimo Lupo
f147398554
ast: write commas for empty glyph classes in GlyphClassDef statement 2016-12-20 13:26:48 +00:00
Cosimo Lupo
638e36a1d1 Merge pull request #779 from fonttools/fix-pr-778
Fix merge conflict with PR778
2016-12-20 13:25:02 +00:00
Cosimo Lupo
60e9fed16d
[minor] whitespace 2016-12-20 12:51:33 +00:00
Cosimo Lupo
934cbd72be
builder_test: open with UTF-8 encoding to fix failing Appveyor tests
https://ci.appveyor.com/project/fonttools/fonttools/build/1.0.259/job/yi83cj0hhid3asb8
2016-12-20 12:47:31 +00:00
Martin Hosken
3c2cc8e6aa
fea2fea passes all tests 2016-12-20 11:58:37 +00:00
Martin Hosken
e41bf35f06
Fix nameid type tests 2016-12-20 11:55:52 +00:00
Cosimo Lupo
81d465b411 Merge pull request #777 from fonttools/pep8-on-pr-776
minor style/whitespace fixes to appease flake8 linter
2016-12-20 11:20:12 +00:00
Cosimo Lupo
b97e420895
minor style/whitespace fixes to appease flake8 linter 2016-12-20 11:03:10 +00:00
Sascha Brawer
0d14cfbc83 [feaLib] Fix minor typo in unittest comment 2016-12-20 11:14:39 +01:00
mhosken
7a0c5e1ca2 Add fea generation support (#776)
* First round of adding fea output

No format tests but all test files give reasonable output so far.

* Get existing tests working

* Initial tests that work for fea2fea

* Get more tests working

Bug fixes and re-layout some tests to compare with fea2fea output.
Ranges and name parameters are not optimised yet.

* Handle vertical default values in fea2fea

* Hide fea2fea differences in lookupflags

* No reduce() in py3 so use a for loop
2016-12-20 11:10:29 +01:00
Behdad Esfahbod
d9e915c925 Fix compile of MVAR and STAT tables 2016-12-19 18:21:11 -06:00
Sascha Brawer
3b6648e725 [agl] Add link to GitHub issue for details about TODO comment
https://github.com/fonttools/fonttools/issues/775
2016-12-19 15:42:39 +01:00
Sascha Brawer
428636cfaf Map AGL glyph names to Unicode (#774)
Implements the mapping algorithm from the [Adobe Glyph List specification](
https://github.com/adobe-type-tools/agl-specification#2-the-mapping).

Currently, the implementation only recognizes glyph names from the
Adobe Glyph List for New Fonts (AGLFN), not the legacy AGL which is a
superset. If there is interest, it would be easy to support the legacy AGL
as well, preferrably in a follow-up change.

https://github.com/googlei18n/glyphsLib/issues/88#issuecomment-267408215
2016-12-19 15:34:44 +01:00
Behdad Esfahbod
b4d53811e9 Implement MVAR table 2016-12-18 21:55:45 -06:00
Cosimo Lupo
323877f7df
Bump version: 3.3.1 → 3.3.2.dev0 2016-12-15 11:12:14 +00:00
Cosimo Lupo
95f76885e7
Release 3.3.1 2016-12-15 11:12:13 +00:00
Cosimo Lupo
4e3b5ed2cd Merge pull request #768 from anthrotype/bumpversion
don't compute git version at runtime; bump version with custom 'release' command
2016-12-15 08:49:45 +00:00
Cosimo Lupo
c9921c2f99
Update NEWS 2016-12-14 23:11:29 +00:00
Cosimo Lupo
2a757ad55a
setup.py: add custom 'release' command to run bump all versions and tag new releases 2016-12-14 23:11:29 +00:00
Cosimo Lupo
f73ce62c12
setup.cfg: use bumpversion to update versions in setup.py and fontTools/__init__.py
make bumpversion configuration aware of pre-release .devN suffix
2016-12-14 22:38:54 +00:00