qutebrowser/tox.ini

194 lines
6.0 KiB
INI
Raw Normal View History

# Tox (http://tox.testrun.org/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.
[tox]
envlist = smoke,unittests,misc,pep257,pyflakes,pep8,mccabe,pylint,pyroma,check-manifest
[testenv]
2015-06-10 18:33:15 +02:00
passenv = PYTHON
basepython = python3
[testenv:mkvenv]
commands = {envpython} scripts/link_pyqt.py --tox {envdir}
envdir = {toxinidir}/.venv
usedevelop = true
[testenv:unittests]
# https://bitbucket.org/hpk42/tox/issue/246/ - only needed for Windows though
setenv = QT_QPA_PLATFORM_PLUGIN_PATH={envdir}/Lib/site-packages/PyQt5/plugins/platforms
2015-06-10 18:33:15 +02:00
passenv = PYTHON DISPLAY XAUTHORITY HOME
2015-03-30 22:09:56 +02:00
deps =
-r{toxinidir}/requirements.txt
py==1.4.30
pytest==2.7.2
pytest-capturelog==0.7
pytest-qt==1.5.0
2015-07-08 07:14:22 +02:00
pytest-mock==0.7.0
pytest-html==1.3.1
2015-03-26 09:18:21 +01:00
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
2015-07-19 21:54:51 +02:00
{envpython} -m py.test --strict -rfEsw {posargs:tests}
2015-03-26 09:18:21 +01:00
[testenv:unittests-watch]
setenv = {[testenv:unittests]setenv}
passenv = {[testenv:unittests]passenv}
deps =
{[testenv:unittests]deps}
pytest-testmon==0.6
pytest-watch==3.2.0
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envdir}/bin/ptw -- --testmon --strict -rfEsw {posargs:tests}
[testenv:unittests-frozen]
setenv = {[testenv:unittests]setenv}
passenv = {[testenv:unittests]passenv}
skip_install = true
deps =
{[testenv:unittests]deps}
cx_Freeze==4.3.4
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envpython} scripts/dev/freeze_tests.py build_exe -b {envdir}/build
{envdir}/build/run-frozen-tests --strict -rfEsw {posargs}
2015-03-26 09:18:21 +01:00
[testenv:coverage]
2015-06-10 18:33:15 +02:00
passenv = PYTHON DISPLAY XAUTHORITY HOME
deps =
2015-03-30 22:09:56 +02:00
{[testenv:unittests]deps}
coverage==3.7.1
2015-03-30 23:29:54 +02:00
pytest-cov==1.8.1
cov-core==1.15.0
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
2015-07-19 21:54:51 +02:00
{envpython} -m py.test --strict -rfEswx -v --cov qutebrowser --cov-report term --cov-report html {posargs:tests}
[testenv:misc]
commands =
{envpython} scripts/dev/misc_checks.py git
{envpython} scripts/dev/misc_checks.py vcs
{envpython} scripts/dev/misc_checks.py spelling
[testenv:pylint]
skip_install = true
setenv = PYTHONPATH={toxinidir}/scripts/dev
deps =
-r{toxinidir}/requirements.txt
astroid==1.3.6
Update to beautifulsoup 4.4.0. Upstream changelog: Especially important changes: * Added a warning when you instantiate a BeautifulSoup object without explicitly naming a parser. [bug=1398866] * __repr__ now returns an ASCII bytestring in Python 2, and a Unicode string in Python 3, instead of a UTF8-encoded bytestring in both versions. In Python 3, __str__ now returns a Unicode string instead of a bytestring. [bug=1420131] * The `text` argument to the find_* methods is now called `string`, which is more accurate. `text` still works, but `string` is the argument described in the documentation. `text` may eventually change its meaning, but not for a very long time. [bug=1366856] * Changed the way soup objects work under copy.copy(). Copying a NavigableString or a Tag will give you a new NavigableString that's equal to the old one but not connected to the parse tree. Patch by Martijn Peters. [bug=1307490] * Started using a standard MIT license. [bug=1294662] * Added a Chinese translation of the documentation by Delong .w. New features: * Introduced the select_one() method, which uses a CSS selector but only returns the first match, instead of a list of matches. [bug=1349367] * You can now create a Tag object without specifying a TreeBuilder. Patch by Martijn Pieters. [bug=1307471] * You can now create a NavigableString or a subclass just by invoking the constructor. [bug=1294315] * Added an `exclude_encodings` argument to UnicodeDammit and to the Beautiful Soup constructor, which lets you prohibit the detection of an encoding that you know is wrong. [bug=1469408] * The select() method now supports selector grouping. Patch by Francisco Canas [bug=1191917] Bug fixes: * Fixed yet another problem that caused the html5lib tree builder to create a disconnected parse tree. [bug=1237763] * Force object_was_parsed() to keep the tree intact even when an element from later in the document is moved into place. [bug=1430633] * Fixed yet another bug that caused a disconnected tree when html5lib copied an element from one part of the tree to another. [bug=1270611] * Fixed a bug where Element.extract() could create an infinite loop in the remaining tree. * The select() method can now find tags whose names contain dashes. Patch by Francisco Canas. [bug=1276211] * The select() method can now find tags with attributes whose names contain dashes. Patch by Marek Kapolka. [bug=1304007] * Improved the lxml tree builder's handling of processing instructions. [bug=1294645] * Restored the helpful syntax error that happens when you try to import the Python 2 edition of Beautiful Soup under Python 3. [bug=1213387] * In Python 3.4 and above, set the new convert_charrefs argument to the html.parser constructor to avoid a warning and future failures. Patch by Stefano Revera. [bug=1375721] * The warning when you pass in a filename or URL as markup will now be displayed correctly even if the filename or URL is a Unicode string. [bug=1268888] * If the initial <html> tag contains a CDATA list attribute such as 'class', the html5lib tree builder will now turn its value into a list, as it would with any other tag. [bug=1296481] * Fixed an import error in Python 3.5 caused by the removal of the HTMLParseError class. [bug=1420063] * Improved docstring for encode_contents() and decode_contents(). [bug=1441543] * Fixed a crash in Unicode, Dammit's encoding detector when the name of the encoding itself contained invalid bytes. [bug=1360913] * Improved the exception raised when you call .unwrap() or .replace_with() on an element that's not attached to a tree. * Raise a NotImplementedError whenever an unsupported CSS pseudoclass is used in select(). Previously some cases did not result in a NotImplementedError. * It's now possible to pickle a BeautifulSoup object no matter which tree builder was used to create it. However, the only tree builder that survives the pickling process is the HTMLParserTreeBuilder ('html.parser'). If you unpickle a BeautifulSoup object created with some other tree builder, soup.builder will be None. [bug=1231545]
2015-07-06 10:47:49 +02:00
beautifulsoup4==4.4.0
pylint==1.4.4
logilab-common==1.0.2
six==1.9.0
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envpython} -m pylint scripts qutebrowser --rcfile=.pylintrc --output-format=colorized --reports=no --expected-line-ending-format=LF
{envpython} scripts/dev/run_pylint_on_tests.py --rcfile=.pylintrc --output-format=colorized --reports=no --expected-line-ending-format=LF
[testenv:pep257]
skip_install = true
deps = pep257==0.6.0
2015-06-10 18:33:15 +02:00
passenv = PYTHON LANG
# Disabled checks:
2015-07-21 10:26:57 +02:00
# D102: Missing docstring in public method (will be handled by others)
# D103: Missing docstring in public function (will be handled by others)
# D209: Blank line before closing """ (removed from PEP257)
# D402: First line should not be function's signature (false-positives)
2015-04-05 20:30:31 +02:00
commands = {envpython} -m pep257 scripts tests qutebrowser --ignore=D102,D103,D209,D402 '--match=(?!resources|test_content_disposition).*\.py'
[testenv:pyflakes]
# https://github.com/fschulze/pytest-flakes/issues/6
setenv = LANG=en_US.UTF-8
deps =
-r{toxinidir}/requirements.txt
2015-06-26 22:41:30 +02:00
py==1.4.30
pytest==2.7.2
pyflakes==0.9.2
pytest-flakes==1.0.0
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envpython} -m py.test -q --flakes --ignore=tests
[testenv:pep8]
deps =
-r{toxinidir}/requirements.txt
2015-06-26 22:41:30 +02:00
py==1.4.30
pytest==2.7.2
pep8==1.6.2
pytest-pep8==1.0.6
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envpython} -m py.test -q --pep8 --ignore=tests
[testenv:mccabe]
deps =
-r{toxinidir}/requirements.txt
2015-06-26 22:41:30 +02:00
py==1.4.30
pytest==2.7.2
mccabe==0.3.1
pytest-mccabe==0.1
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envpython} -m py.test -q --mccabe --ignore=tests
[testenv:pyroma]
skip_install = true
deps =
pyroma==1.8.2
docutils==0.12
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envdir}/bin/pyroma .
[testenv:check-manifest]
skip_install = true
deps =
check-manifest==0.25
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envdir}/bin/check-manifest --ignore 'qutebrowser/git-commit-id,qutebrowser/html/doc,qutebrowser/html/doc/*,*/__pycache__'
2015-03-26 09:18:21 +01:00
[testenv:docs]
skip_install = true
whitelist_externals = git
2015-03-26 09:18:21 +01:00
deps =
-r{toxinidir}/requirements.txt
2015-03-26 09:18:21 +01:00
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
2015-06-28 23:04:18 +02:00
{envpython} scripts/dev/src2asciidoc.py
git --no-pager diff --exit-code --stat
2015-03-26 09:18:21 +01:00
{envpython} scripts/asciidoc2html.py {posargs}
2015-03-27 07:59:13 +01:00
[testenv:smoke]
# https://bitbucket.org/hpk42/tox/issue/246/ - only needed for Windows though
setenv = QT_QPA_PLATFORM_PLUGIN_PATH={envdir}/Lib/site-packages/PyQt5/plugins/platforms
2015-06-10 18:33:15 +02:00
passenv = PYTHON DISPLAY XAUTHORITY HOME USERNAME USER
2015-03-27 07:59:13 +01:00
deps =
-r{toxinidir}/requirements.txt
2015-03-27 07:59:13 +01:00
commands =
2015-05-17 01:07:36 +02:00
{envpython} scripts/link_pyqt.py --tox {envdir}
{envpython} -m qutebrowser --no-err-windows --nowindow --temp-basedir about:blank ":later 500 quit"
2015-06-18 20:44:22 +02:00
[testenv:smoke-frozen]
setenv = {[testenv:smoke]setenv}
passenv = {[testenv:smoke]passenv}
skip_install = true
deps =
{[testenv:smoke]deps}
cx_Freeze==4.3.4
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envpython} scripts/dev/freeze.py build_exe --qute-skip-html -b {envdir}/build
2015-06-18 20:44:22 +02:00
{envdir}/build/qutebrowser --no-err-windows --nowindow --temp-basedir about:blank ":later 500 quit"
[testenv:cxfreeze-windows]
# PYTHON is actually required when using this env, but the entire tox.ini would
# fail if we didn't have a fallback defined.
basepython = {env:PYTHON:}/python.exe
skip_install = true
deps = {[testenv:smoke-frozen]deps}
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envpython} scripts/dev/freeze.py {posargs}