We patch sources.list to use the US loudbalancer instead of the hardcoded GCE
mirror which Travis uses by default - because that seems to be quite unstable.
There are a lot of problems and flakiness with using a real clipboard.
Instead we now have a :debug-set-fake-clipboard command to set a text, and use
logging when getting the contents.
Fixes#1285.
This way we can instruct update_3rdparty to download a specific version
of pdfjs, e.g. to make debugging easier or to match the version of a
system package.
Syntax:
update_3rdparty.py -p 1.2.109
or
update_3rdparty.py --pdfjs=1.2.109
If the command line argument is not given, the script will automatically
download the latest release.
Unfortunately running coverage means our tests need more than a minute longer
to run.
We still run it in the following scenarios:
- Full 'tox' run
- On Travis CI on Linux
- On the buildbot on Archlinux
But not anymore in the following scenarios:
- When running 'tox -e py35' (or py34)
- On Travis CI on OS X
- On AppVeyor
- On the buildbot except on Archlinux
Windows needs the SystemRoot environment variable set to initialize the crypto
API, what running Python in a subprocess does.
However, we did override the whole environment instead of extending it, which
means this broke on Windows when calling asciidoc:
Traceback (most recent call last):
File "C:\asciidoc-8.6.9\asciidoc.py", line 9, in <module>
import sys, os, re, time, traceback, tempfile, subprocess, codecs, locale, unicodedata, copy
File "C:\Python27\lib\tempfile.py", line 35, in <module>
from random import Random as _Random
File "C:\Python27\lib\random.py", line 885, in <module>
_inst = Random()
File "C:\Python27\lib\random.py", line 97, in __init__
self.seed(x)
File "C:\Python27\lib\random.py", line 113, in seed
a = long(_hexlify(_urandom(2500)), 16)
WindowsError: [Error -2146893795] Provider DLL failed to initialize correctly
freeze.py now optionally includes pdfjs if it's present. This means we don't
need to download it every time to run frozen tests, but we can include it in
build_release.py when building a windows package.
You cannot open a file twice on windows, so the call to
urllib.request.urlretrieve was invalid, since we already opened the
temporary file. urlretrieve without a filename will automatically create
and return a temp-file, so we're fine.
* No modified pdfjs installation needed
-> Groundwork for using a system-wide installation
* Script update_3rdparty.py to download and upack the latest pdfjs
release
If we do it in tox.ini, there are two drawbacks:
- We have more stuff in PYTHONPATH even if we don't when actually using
qutebrowser.
- The separator is platform specific, so we can't easily do this in a portable
way in tox.ini.
The ua_fetch.py has been re-written entirely to find specific entries for
each browser based on diversity rather than sole popularity. The output
is now formatted to print the entries for each browser grouped together.
Closes#1077.
There were two issues:
- Paths for coverage.py suddenly were absolute instead of relative, so we strip
the common base part if that happens.
/home/florian/proj/qutebrowser/git/qutebrowser/browser/cookies.py has 100%
coverage but is not in perfect_files!
/home/florian/proj/qutebrowser/git/qutebrowser/browser/http.py has 100%
coverage but is not in perfect_files!
[...]
- There was an io.UnsupportedOperationError in test_check_coverage.py because
of pytest-faulthandler, so we just don't load that in the subprocess.