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.
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.
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.
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.
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.
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`
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.
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...
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.
* 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