3552 Commits

Author SHA1 Message Date
Behdad Esfahbod
7d1ddb237e [otlLib] Make ClassDef sorting deterministic
Fixes https://github.com/fonttools/fonttools/issues/766
2016-12-28 15:44:19 -05:00
Behdad Esfahbod
88026de510 Merge pull request #790 from fonttools/cmap-decompile-skip-gid0
In cmap decompile skip gid0
2016-12-28 15:33:23 -05:00
Behdad Esfahbod
8dada08d4d [mtiLib] Enable cmap test now that it passes
Was failing before 312203b6610f513509063dfc7e823bbf9ea55e29
2016-12-27 18:42:09 -05:00
Behdad Esfahbod
312203b661 [cmap] Skip gid=0 entries when decompiling cmap
gid=0 means "not mapped".  Many of the cmap formats use this to
optimize byte encoding.  When reading these tables, we don't
want to map charcodes to gid0 in the resulting struct.
2016-12-27 18:42:03 -05:00
Behdad Esfahbod
05950fcbab [cmap] Rewrite loop 2016-12-27 18:38:42 -05:00
Behdad Esfahbod
48f4e4ed04 [cmap] Factor out some common code 2016-12-27 18:36:59 -05:00
Behdad Esfahbod
7236533eb2 [mtiLib] Prepare for enabling cmap test 2016-12-27 18:16:09 -05:00
Behdad Esfahbod
91b5c2c395 Merge pull request #787 from fonttools/mtiLib-tests
Mti lib tests
2016-12-27 15:47:06 -05:00
Behdad Esfahbod
8528dc9d7c [mtiLib] Add commnent re emitting empty lookups 2016-12-27 15:22:23 -05:00
Behdad Esfahbod
4b38a20cee [mtiLib] Set lookup type even if lookup is empty
For real this time.
2016-12-27 15:19:22 -05:00
Behdad Esfahbod
6380b7041c [mtiLib] Set LookupType even for empty lookup 2016-12-27 15:17:04 -05:00
Behdad Esfahbod
7af5f9a343 [mtiLib] Port remaining types to new internal API 2016-12-27 15:15:48 -05:00
Behdad Esfahbod
86717f390b [mtiLib] Minor 2016-12-27 15:06:03 -05:00
Behdad Esfahbod
621a0613bc [mtiLib] Parse lookup-flags earlier
Such that we set them even if lookup block is empty.
2016-12-27 13:59:12 -05:00
Behdad Esfahbod
cf09589729 [mtiLib] Format 2016-12-27 13:42:17 -05:00
Behdad Esfahbod
a6178fd4fb [mtiLib] Fix and enable chained-glyph test 2016-12-27 13:40:27 -05:00
Behdad Esfahbod
1896353af0 [mtiLib] Enable testing same source against multiple tableTags 2016-12-27 13:38:51 -05:00
Behdad Esfahbod
2f800c9384 [mtiLib] Allow empty lookup 2016-12-27 13:37:11 -05:00
Behdad Esfahbod
edd46bb14a [mtiLib] Remove use of MockFont in tests
Tests pass on both Python 2 and 3 now. Yay!

MockFont is handy for mtiLib.__init__:main().  Not sure how useful it is
otherwise, and what to replace it with.
2016-12-27 13:28:06 -05:00
Behdad Esfahbod
f6294ba7bd [mtiLib] More deterministic output with MockFont 2016-12-27 13:09:39 -05:00
Behdad Esfahbod
8358a7248f [mtiLib] Make output more deterministic with MockFont
I'll first make Python 2 and 3 both generate same output for tests with
MockFont, then will probably hardcode glyphorder and remove MockFont
completely and remove hacks I added to make tests work with MockFont.
2016-12-27 13:03:37 -05:00
Behdad Esfahbod
2034cef52f Write test diffs to stderr, not stdout 2016-12-26 20:30:00 -05:00
Behdad Esfahbod
80a142f436 [mtiLib] More MANIFEST.in updates 2016-12-26 20:17:13 -05:00
Behdad Esfahbod
0661b0805b [mtiLib] Fix warnings in tests with Python3 2016-12-26 20:15:53 -05:00
Behdad Esfahbod
31b6aab8e1 [mtiLib] One more try to make bots happy 2016-12-26 18:06:44 -05:00
Behdad Esfahbod
7bb30c8365 [mtiLib] More MANIFEST massaging
Should we just include testdata/*?
2016-12-26 17:58:15 -05:00
Behdad Esfahbod
50e6f00252 Add mtiLib test data to MANIFEST 2016-12-26 17:50:53 -05:00
Behdad Esfahbod
ab01846a8d [mtiLib] Add some more tests 2016-12-26 17:35:21 -05:00
Behdad Esfahbod
2d3610bb6b Ignore class=0 when reading & writing ClassDef objects
class=0 items might be added as an optimization.  They have no semantic value.
Ignore them.

Fixes the last of mtiLib tests.
2016-12-26 17:26:14 -05:00
Behdad Esfahbod
101303ab50 [mtiLib] Fix two more tests 2016-12-26 17:14:39 -05:00
Behdad Esfahbod
fc25b26ca2 [mtiLib] Fix expected output of two remaining tests 2016-12-26 16:58:19 -05:00
Behdad Esfahbod
795e66747c Print XML output from compil-roundtripped object, not the built one
This is almost always the correct thing to print.  If the two differ, that's
bad, but print the better one.
2016-12-26 16:50:00 -05:00
Behdad Esfahbod
8c571d1b73 [mtiLib] Fix order of diffing test outputs 2016-12-26 16:49:48 -05:00
Behdad Esfahbod
3689f0ffdc [mtiLib] Whitespace 2016-12-26 16:39:50 -05:00
Behdad Esfahbod
aa3b94db0a [mtiLib] Fix mti/gpospairglyph test 2016-12-26 16:36:38 -05:00
Behdad Esfahbod
f4c9134957 [mtiLib] Fix gposmarktobase test 2016-12-26 16:29:20 -05:00
Behdad Esfahbod
4f6dea2d99 [mtiLib] Fix gpossingle test 2016-12-26 16:27:45 -05:00
Behdad Esfahbod
730f77a606 [mtiLib] Make test pass
mark-to-ligature was failing because we were not setting ClassCount.
2016-12-26 16:23:02 -05:00
Behdad Esfahbod
180362d30c [mtiLib] Add test data from spec, with test runner 2016-12-26 16:22:54 -05:00
Behdad Esfahbod
5858750dc3 [mtiLib] Fix warnings 2016-12-26 15:29:09 -05:00
Cosimo Lupo
61ab1e7f6d
build sdist/wheel only once for both Github and PyPI
This makes sure we upload the same files to Github Releases and PyPI.

Currently we were building them twice, with the risk of different files
being uploaded to the two repositories.
2016-12-26 19:36:08 +00:00
Behdad Esfahbod
6c140cbba1 [testTools] Move MockFont from mtiLib to testTools
This is useful for testing beyond just mtiLib.
2016-12-26 14:34:29 -05:00
Cosimo Lupo
9a28b61e3c Merge pull request #786 from fonttools/combine-coverage
run coverage on all python versions; upload combined data to codecov
2016-12-26 19:14:06 +00:00
Cosimo Lupo
567c8c34c9
.codecov.yml: disable PR comments and status checks 2016-12-26 19:03:44 +00:00
Cosimo Lupo
17dab6b968
tox.ini: don't skip missing interpreters as it may hide CI configuration issues 2016-12-26 18:39:38 +00:00
Cosimo Lupo
fdeb3f56bf
README.md: replace Coveralls.io badge with Codecov 2016-12-26 18:39:38 +00:00
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