Commit Graph

338 Commits

Author SHA1 Message Date
Florian Bruhin
34a6451806 Add special #! commands to recompile_requirements 2016-06-07 23:08:14 +02:00
Florian Bruhin
136cb19814 reqs: Comment out ignored dependencies 2016-06-07 22:53:17 +02:00
Florian Bruhin
1a26c8c61f Add a script to compile requirement files 2016-06-07 22:45:59 +02:00
Florian Bruhin
41fcf0ed33 Make pytest_rerunfailures work with frozen tests 2016-06-04 17:07:51 +02:00
Florian Bruhin
ce0b50bafd Fix pytest_rerunfailures package name 2016-06-01 13:13:41 +02:00
Florian Bruhin
e6f3a200c8 Include pytest-rerunfailures for frozen tests 2016-06-01 12:39:29 +02:00
Florian Bruhin
2a49dbe817 Fix handling of cmd.no_cmd_split for docs 2016-05-30 16:42:53 +02:00
Florian Bruhin
e8528c2c75 travis: Switch back to autogenerated Docker images
Archlinux updated to PyQt 5.6 in [extra] now, so the autobuilt image
should work fine with Qt 5.6 now.
2016-05-29 23:00:32 +02:00
Florian Bruhin
070e30658f Fix lint 2016-05-29 22:22:34 +02:00
Florian Bruhin
001670969b tests: Ignore segfaults on pytest exit
In various situations (especially on OS X), pytest segfaults on exit probably
due to Qt/PyQt bugs.

We now have a wrapper script which ignores those segfaults if pytest did run
successfully.
2016-05-29 22:06:24 +02:00
Florian Bruhin
1332258767 Revert "travis_run: Show tox exit status"
This reverts commit 144a37ec06.
We accidentally always exit with status 0 with this...
2016-05-29 20:46:48 +02:00
Florian Bruhin
144a37ec06 travis_run: Show tox exit status 2016-05-29 18:47:58 +02:00
Florian Bruhin
64d4c9f83e Clean up end2end test file structure
This renames tests/integration to tests/end2end and moves some files to
tests/end2end/fixtures.
2016-05-29 18:20:00 +02:00
Florian Bruhin
6f6303e0a6 Use requirements files for tox dependencies
While this makes things a little more complicated and means we'll need to use
`-r` to recreate tox environments, it has several advantages:

- Full support from requires.io (including PRs)
- Workaround for https://bitbucket.org/hpk42/tox/issues/332/ so we can update
  virtualenv/pip
2016-05-29 16:53:54 +02:00
Florian Bruhin
cd7b8c65df Remove OS X specific options from freeze.py 2016-05-29 16:26:21 +02:00
Florian Bruhin
9bb425d598 Install Qt5/PyQt5 from custom bottles on OS X
We have a custom build which comes with QtWebKit now.
2016-05-29 15:46:43 +02:00
Florian Bruhin
345768bfc4 Fix requirements installing on Appveyor 2016-05-29 15:28:49 +02:00
Florian Bruhin
a987b714de appveyor: Install pip/tox from requirements files 2016-05-29 15:14:42 +02:00
Florian Bruhin
f4ce199968 ci: Blacklist virtualenv > 15.0.1 2016-05-29 15:09:14 +02:00
Florian Bruhin
f72fc04bb1 Revert "ci: Update virtualenv to 15.0.2"
This reverts commit 3c978aa203.
We need to revert this due to the tox/pip bug with inline comments.
2016-05-29 15:08:43 +02:00
Florian Bruhin
1e55db0630 Follow the American way(tm) of spelling things 2016-05-29 10:57:41 +02:00
Florian Bruhin
3c978aa203 ci: Update virtualenv to 15.0.2 2016-05-28 23:27:42 +02:00
Florian Bruhin
4066696956 tox/requirements: Update coverage to 4.1
Version 4.1 --- 2016-05-21

- The internal attribute Reporter.file_reporters was removed in 4.1b3.
  It should have come has no surprise that there were third-party tools
  out there using that attribute. It has been restored, but with a
  deprecation warning.

Version 4.1b3 --- 2016-05-10

- When running your program, execution can jump from an except X: line
  to some other line when an exception other than X happens. This jump
  is no longer considered a branch when measuring branch coverage.
- When measuring branch coverage, yield statements that were never
  resumed were incorrectly marked as missing. This is now fixed.
- During branch coverage of single-line callables like lambdas and
  generator expressions, coverage.py can now distinguish between them
  never being called, or being called but not completed.
- The HTML report now has a map of the file along the rightmost edge of
  the page, giving an overview of where the missed lines are. Thanks,
  Dmitry Shishov.
- The HTML report now uses different monospaced fonts, favoring Consolas
  over Courier. Along the way not properly handling one-space indents
  was fixed. The index page also has slightly different styling, to try
  to make the clickable detail pages more apparent.
- Missing branches reported with coverage report -m will now say ->exit
  for missed branches to the exit of a function, rather than a negative
  number.
- coverage --help and coverage --version now mention which tracer is
  installed, to help diagnose problems. The docs mention which features
  need the C extension.
- Officially support PyPy 5.1, which required no changes, just updates
  to the docs.
- The Coverage.report function had two parameters with non-None
  defaults, which have been changed. show_missing used to default to
  True, but now defaults to None. If you had been calling
  Coverage.report without specifying show_missing, you'll need to
  explicitly set it to True to keep the same behavior. skip_covered used
  to default to False. It is now None, which doesn't change the
  behavior.
- It's never been possible to pass a namespace module to one of the
  analysis functions, but now at least we raise a more specific error
  message, rather than getting confused.
- The coverage.process_startup function now returns the Coverage
  instance it creates.
- Make a small tweak to how we compare threads, to avoid buggy custom
  comparison code in thread classes.

Version 4.1b2 --- 2016-01-23

- Problems with the new branch measurement in 4.1 beta 1 were fixed:
  - Class docstrings were considered executable. Now they no longer are.
  - yield from and await were considered returns from functions, since
    they could tranfer control to the caller. This produced unhelpful
    "missing branch" reports in a number of circumstances. Now they no
    longer are considered returns.
  - In unusual situations, a missing branch to a negative number was
    reported.
- The XML report now produces correct package names for modules found in
  directories specified with source=.
- coverage report won't produce trailing whitespace.

Version 4.1b1 --- 2016-01-10

- Branch analysis has been rewritten: it used to be based on bytecode,
  but now uses AST analysis. This has changed a number of things:
  - More code paths are now considered runnable, especially in
    try/except structures. This may mean that coverage.py will identify
    more code paths as uncovered. This could either raise or lower your
    overall coverage number.
  - Python 3.5's async and await keywords are properly supported
  - Some long-standing branch coverage bugs were fixed:
    - functions with only a docstring for a body would incorrectly
      report a missing branch on the def line.
    - code in an except block could be incorrectly marked as a missing
      branch.
    - context managers (with statements) in a loop or try block could
      confuse the branch measurement, reporting incorrect partial
      branches.
    - In Python 3.5, an actual partial branch could be marked as
      complete.
- Pragmas to disable coverage measurement can now be used on decorator
  lines, and they will apply to the entire function or class being
  decorated.
- Multiprocessing support is now available on Windows.
- Files with two encoding declarations are properly supported.
- Non-ascii characters in regexes in the configuration file worked in
  3.7, but stopped working in 4.0. Now they work again.
- Form-feed characters would prevent accurate determination of the
  beginning of statements in the rest of the file. This is now fixed.
2016-05-22 14:35:26 +02:00
Florian Bruhin
5c8d1656ff Fix path to test_keyhints.py in check_coverage.py
utils -> misc
2016-05-18 07:34:40 +02:00
Florian Bruhin
d0af80fbd5 Merge branch 'keystring' of https://github.com/rcorre/qutebrowser into rcorre-keystring 2016-05-18 07:33:17 +02:00
Florian Bruhin
c0d044447d Add tests for qutebrowser.utils.typing 2016-05-18 06:55:17 +02:00
Florian Bruhin
a0d0b6464f Use typing.py-like annotations for command args
This means:

- An annotation like (int, str) is now typing.Union[int, str].
- utils.typing got expanded so it acts like the real typing.py, with
  issubclass() working properly with typing.Union and __union_params__
  being set.
- A literal string doesn't exist anymore as annotation, instead
  @cmdutils.argument now has a 'choices' argument which can be used like
  @cmdutils.argument('arg', choices=['val1', 'val2']).
- Argument validating/converting is now entirely handled by
  argparser.type_conv instead of relying on python's argparse, i.e.
  type/choices is now not passed to argparse anymore.
2016-05-18 06:55:17 +02:00
Florian Bruhin
2fc4f408cd Fix src2asciidoc 2016-05-18 06:55:17 +02:00
Florian Bruhin
965a012db7 Name strip_whitespace.sh correctly 2016-05-18 06:54:14 +02:00
Florian Bruhin
ee579b4bc3 Add a script to strip trailing whitespace
Obsoletes #1498
2016-05-18 06:37:26 +02:00
Ryan Roden-Corrent
822d148713 Update key hint tests for new format.
Change the unit tests to expect the new tabular format.
Also generally clean up the tests -- refactor from a class to
module-level functions as there was no need for a class here.
2016-05-17 07:04:53 -04:00
Florian Bruhin
b6abada50a Fix lint 2016-05-13 06:42:09 +02:00
Florian Bruhin
a7ece80d34 Merge branch 'pyinstaller' 2016-05-13 06:21:28 +02:00
Florian Bruhin
7901d2929a ci: Update pip to 8.1.2
Since virtualenv uses the built-in pip version with VIRTUALENV_DOWNLOAD=no we
need to make sure we keep virtualenv capped, but we can use a newer pip.
2016-05-12 20:32:03 +02:00
Florian Bruhin
e70d6d49d9 travis: Separate requirement files
This way we can update pip independently before installing the rest, and
avoid installing codecov (and thus coverage which attempts to build C
extension) where it's not needed.
2016-05-12 20:32:03 +02:00
Florian Bruhin
d4e2b4ebb4 travis: Don't update Python for flake8 env
This was needed because of a bug for which the backfix seems to be
ported to Ubuntu now.
2016-05-12 20:32:03 +02:00
Florian Bruhin
56a2b6778c travis: Install libpython3.4-dev
This is now needed because we use "language: generic" which doesn't come
with that package.
2016-05-12 20:32:03 +02:00
Florian Bruhin
e13320b398 travis: Use python2 for pip
This means we won't need to install pip via apt-get, and using a
Python 2 tox/pip is fine.
2016-05-12 20:32:03 +02:00
Florian Bruhin
3033f77f99 travis: Use (( in travis_retry
If we use [, the script exits when a condition is false (as we use
set -e).
2016-05-12 20:32:03 +02:00
Florian Bruhin
cdc79339fb travis: Use requirement files for pip
This way we can pin tox/pip versions (which are used in the native
Travis environment) *and* get notified about updates by requires.io.
2016-05-12 20:32:03 +02:00
Florian Bruhin
6558e196b4 Simplify package installation on CI
Having a Python script was a good idea back when we could do almost the
same steps on every CI configuration.

This turned out to grow into a complicated script, so it's easier to
split off things for Linux/OS X into a small shell script (and keep
Python for Windows, as I really don't want to use .bat/.ps).
2016-05-12 20:32:03 +02:00
Florian Bruhin
ccd0d1621c Regenerate authors 2016-05-07 22:10:19 +02:00
Florian Bruhin
a5cea14a0f Update docs 2016-05-07 21:39:19 +02:00
Florian Bruhin
e06a32ff42 Revert "travis: Switch to autobuilt Docker images"
This reverts commit b2e52408f7.
Turns out only [testing] is on PyQt 5.6, and even with that the testsuite
doesn't seem to load properly...
2016-04-29 23:21:41 +02:00
Florian Bruhin
b2e52408f7 travis: Switch to autobuilt Docker images
Since Archlinux switched to PyQt 5.6, we can now use the autobuilt image
without a handbuilt PyQt. This means we have an up-to-date image with
each build again.
2016-04-29 22:54:00 +02:00
Florian Bruhin
2a343cb3a1 Various code style improvements 2016-04-27 20:25:27 +02:00
Florian Bruhin
eeb830e040 travis: Ignore doc changes when building a PR
Fixes #1441
2016-04-20 22:35:02 +02:00
Florian Bruhin
d33fae455d Remove unused import 2016-04-15 19:31:54 +02:00
Florian Bruhin
1f66d74f01 Use __file__ instead of sys.argv[0] 2016-04-15 19:12:10 +02:00
Jan Verbeek
7f9a7a282f Make update_3rdparty.py install correctly when run from any directory 2016-04-15 11:23:52 +02:00
Florian Bruhin
642dc46ba9 flake8: Add hacking 2016-04-08 07:35:53 +02:00
Florian Bruhin
0e6bada68f build_release: Build docs/update 3rdparty on OS X 2016-04-07 08:53:34 +02:00
Florian Bruhin
3f0429574c Makefile-dmg: Add /Applications link to dmg 2016-04-07 08:53:34 +02:00
Florian Bruhin
3984437484 build_release: Build dmg via Makefile-dmg 2016-04-07 08:53:34 +02:00
Florian Bruhin
03be10b4fe Makefile-dmg: Copy files from subdirs
We don't want a /dist/qutebrowser.app in the dmg, only a /qutebrowser.app.
2016-04-07 08:53:34 +02:00
Florian Bruhin
97cb429b57 Makefile-dmg: Set variables 2016-04-07 08:53:34 +02:00
Florian Bruhin
533b9d22e7 Add fancy-dmg Makefile 2016-04-07 08:53:34 +02:00
Florian Bruhin
362837e98c update_3rdparty: Add fancy-dmg Makefile 2016-04-07 08:53:25 +02:00
Florian Bruhin
ae41a074e8 build_release: Add basic OS X build 2016-04-07 08:53:17 +02:00
Florian Bruhin
2aef8913ec travis: Don't install recommended packages via apt
This passes --no-install-recommends both for Dockerfiles and Travis
itself.
2016-04-06 08:22:41 +02:00
Florian Bruhin
14eb63d9e9 ci/install: Fix updating of pip on Appveyor
Windows can't update pip when using the wrapper-executable.
2016-04-06 07:43:55 +02:00
Florian Bruhin
57cb812219 ci/install: Wait 30s before re-calling apt-get
See #1396.
2016-04-06 07:14:21 +02:00
Florian Bruhin
b70975223f travis: Use sudo -H to call pip
pip apparently needs this to make caching work properly?
See #1396.
2016-04-06 07:13:03 +02:00
Florian Bruhin
812c255379 travis: Use pip install -U to install packages 2016-04-06 07:12:21 +02:00
Florian Bruhin
2ad4fa5c8a ci/install: Upgrade pip on Travis/AppVeyor
See #1396
2016-04-06 07:11:57 +02:00
Florian Bruhin
fb741582ef scripts/dev/ci/install: Retry apt-get if it fails 2016-04-05 12:43:51 +02:00
Florian Bruhin
6c1ee07c85 travis: Self-update npm in eslint env 2016-04-05 07:34:57 +02:00
Florian Bruhin
f91935c8e8 freeze: Add pkg_resources._vendor.six
Another package added by pkg_resources and not picked up by cx_Freeze...
2016-04-04 21:31:27 +02:00
Florian Bruhin
910adaf097 build_release: Don't call update_3rdparty.main
main tries to parse sys.argv which will fail when called from
build_release when e.g. --asciidoc is given.
2016-04-04 18:32:49 +02:00
Florian Bruhin
9b25f8f91d Add --cheatsheet to src2asciidoc.py 2016-04-01 18:18:41 +02:00
Florian Bruhin
dd9145d650 travis: Remove sources.list patching again
Turns out the other mirrors aren't really more stable either.
2016-03-31 21:26:44 +02:00
Florian Bruhin
25555682dc Merge branch 'master' of https://github.com/arsana7/qutebrowser into arsana7-master 2016-03-29 18:59:06 +02:00
Florian Bruhin
606471c4b6 Merge branch 'test_statusbar_url' of https://github.com/craftyguy/qutebrowser into craftyguy-test_statusbar_url 2016-03-29 07:07:45 +02:00
Clayton Craft
a78644a199 Implement statusbar.url test 2016-03-24 12:57:14 -07:00
Florian Bruhin
cd5cb2f50d Improve check_coverage.py output on failure 2016-03-24 06:51:22 +01:00
Florian Bruhin
ee4fa6c118 travis: Use prebuilt docker images 2016-03-16 07:23:17 +01:00
Florian Bruhin
bb2847fee9 Fix argument passing to Travis 2016-03-16 06:52:06 +01:00
Florian Bruhin
0eb12b8fa0 Fix spelling 2016-03-16 06:23:39 +01:00
Florian Bruhin
236572e0f5 Check docs on Travis, take two
We don't regenerate the authors there, as that doesn't work due to Travis
cloning with --depth=50
2016-03-16 06:22:36 +01:00
Florian Bruhin
172611a1b9 Revert "Revert "Check docs on Travis""
This reverts commit cc6d2ddc1d.
2016-03-16 06:19:33 +01:00
Florian Bruhin
cc6d2ddc1d Revert "Check docs on Travis"
This reverts commit f1ec6e1e00.
--depth=50 on Travis messes up author generation
2016-03-15 23:22:19 +01:00
Florian Bruhin
f1ec6e1e00 Check docs on Travis 2016-03-15 22:46:49 +01:00
Florian Bruhin
07d31634c6 Add script to check for doc changes 2016-03-15 22:43:47 +01:00
Florian Bruhin
123de8783f ci/install.py fixup 2016-03-15 19:32:20 +01:00
Florian Bruhin
62db2c724f Try to run Docker on Travis 2016-03-15 19:25:01 +01:00
Florian Bruhin
cc94e7bfee Move ci_install.py to subdir 2016-03-15 19:20:28 +01:00
Florian Bruhin
43a4a6a3e7 Add pkg_resources._vendor.pyparsing when freezing.
This is similar to 85299d293f.
2016-03-02 08:01:47 +01:00
avk
c9bb6d0111 tests for browser.network.pastebin - code refactor 2016-02-22 20:46:22 +01:00
Florian Bruhin
d0e79b2af7 Fix lint 2016-02-19 07:39:17 +01:00
Florian Bruhin
0b362e76ea Move pylint plugins to an installed package.
This means we can now run things like running pylint --version without having
to set PYTHONPATH correctly now.

When using skip_install=true, the plugins wouldn't work as they need to import
qutebrowser.

We have to keep setting PYTHONPATH in run_pylint_on_tests.py, otherwise we get
this error I don't quite understand:

    F:  1, 0: error while code parsing: Unable to load file
    '/home/florian/proj/qutebrowser/git/__init__.py' ([Errno 2] No such
    file or directory: '...') (parse-error)
2016-02-19 07:15:09 +01:00
Florian Bruhin
67b9904772 Include pytest-xvfb properly in frozen tests 2016-02-19 06:52:19 +01:00
Florian Bruhin
504bf6eb3b Remove xvfbwrapper from freeze_tests.py. 2016-02-17 07:45:36 +01:00
Florian Bruhin
5b66d81f7d Include pstats for frozen tests. 2016-02-11 08:26:31 +01:00
Florian Bruhin
6d11e9ffd8 Fix lint. 2016-02-11 07:17:00 +01:00
Florian Bruhin
45935c86af Rewrite run_profile script.
There's now --profile-tool to select between various tools, a new
--profile-file option, and it uses argparse.
2016-02-11 06:48:16 +01:00
Florian Bruhin
1a42bae627 ci_install: Cleanup, improve messages.
This cleans up the whole script, and outputs nicer folded messages.
2016-02-05 09:24:39 +01:00
Florian Bruhin
41f82b2ad4 travis: Avoid using the default GCE mirror.
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.
2016-02-05 09:23:52 +01:00
Florian Bruhin
79f83a033d Add a fake clipboard for tests
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.
2016-02-03 20:27:11 +01:00
Florian Bruhin
4103e7eba2 Revert "update_3rdparty: add docstring to main()"
This reverts commit 90e88ce0d0.
2016-02-01 20:09:17 +01:00
Florian Bruhin
7be296333a Merge branch 'pdfjs' of https://github.com/Kingdread/qutebrowser into Kingdread-pdfjs 2016-02-01 20:07:56 +01:00