Switch to pytest-xvfb. Fixes #1309.
This commit is contained in:
parent
aad8dfc0ce
commit
5c617b861c
@ -9,7 +9,7 @@ markers =
|
||||
osx: Tests which only can run on OS X.
|
||||
not_osx: Tests which can not run on OS X.
|
||||
not_frozen: Tests which can't be run if sys.frozen is True.
|
||||
not_xvfb: Tests which can't be run with Xvfb.
|
||||
no_xvfb: Tests which can't be run with Xvfb.
|
||||
frozen: Tests which can only be run if sys.frozen is True.
|
||||
integration: Tests which test a bigger portion of code, run without coverage.
|
||||
skip: Always skipped test.
|
||||
|
@ -34,7 +34,6 @@ from helpers.messagemock import message_mock
|
||||
from helpers.fixtures import * # pylint: disable=wildcard-import
|
||||
|
||||
from PyQt5.QtCore import PYQT_VERSION
|
||||
import xvfbwrapper
|
||||
|
||||
|
||||
# Set hypothesis settings
|
||||
@ -55,8 +54,6 @@ def _apply_platform_markers(item):
|
||||
"Can't be run when frozen"),
|
||||
('frozen', not getattr(sys, 'frozen', False),
|
||||
"Can only run when frozen"),
|
||||
('not_xvfb', item.config.xvfb_display is not None,
|
||||
"Can't be run with Xvfb."),
|
||||
('skip', True, "Always skipped."),
|
||||
('pyqt531_or_newer', PYQT_VERSION < 0x050301,
|
||||
"Needs PyQt 5.3.1 or newer"),
|
||||
@ -147,41 +144,18 @@ def fail_tests_on_warnings():
|
||||
|
||||
|
||||
def pytest_addoption(parser):
|
||||
parser.addoption('--no-xvfb', action='store_true', default=False,
|
||||
help='Disable xvfb in tests.')
|
||||
parser.addoption('--qute-delay', action='store', default=0, type=int,
|
||||
help="Delay between qutebrowser commands.")
|
||||
parser.addoption('--qute-profile-subprocs', action='store_true',
|
||||
default=False, help="Run cProfile for subprocesses.")
|
||||
|
||||
|
||||
def pytest_configure(config):
|
||||
"""Start Xvfb if we're on Linux, not on a CI and Xvfb is available.
|
||||
|
||||
This is a lot nicer than having windows popping up.
|
||||
"""
|
||||
config.xvfb_display = None
|
||||
if os.environ.get('DISPLAY', None) == '':
|
||||
# xvfbwrapper doesn't handle DISPLAY="" correctly
|
||||
del os.environ['DISPLAY']
|
||||
|
||||
if (sys.platform.startswith('linux') and
|
||||
not config.getoption('--no-xvfb') and
|
||||
'QUTE_NO_DISPLAY' not in os.environ):
|
||||
assert 'QUTE_BUILDBOT' not in os.environ
|
||||
try:
|
||||
disp = xvfbwrapper.Xvfb(width=800, height=600, colordepth=16)
|
||||
disp.start()
|
||||
except EnvironmentError:
|
||||
# We run without Xvfb if it's unavailable.
|
||||
pass
|
||||
else:
|
||||
config.xvfb_display = disp
|
||||
|
||||
|
||||
def pytest_unconfigure(config):
|
||||
if config.xvfb_display is not None:
|
||||
config.xvfb_display.stop()
|
||||
@pytest.fixture(scope='session', autouse=True)
|
||||
def prevent_xvfb_on_buildbot(request):
|
||||
if (not request.config.getoption('--no-xvfb') and
|
||||
'QUTE_BUILDBOT' in os.environ and
|
||||
request.config.xvfb is not None):
|
||||
raise Exception("Xvfb is running on buildbot!")
|
||||
|
||||
|
||||
@pytest.hookimpl(tryfirst=True, hookwrapper=True)
|
||||
|
@ -113,7 +113,7 @@ Feature: Keyboard input
|
||||
Then the javascript message "key press: 88" should be logged
|
||||
And the javascript message "key release: 88" should be logged
|
||||
|
||||
@not_xvfb @posix
|
||||
@no_xvfb @posix
|
||||
Scenario: :fake-key sending key to the website with other window focused
|
||||
When I open data/keyinput/log.html
|
||||
And I set general -> developer-extras to true
|
||||
|
@ -108,7 +108,7 @@ Feature: Various utility commands.
|
||||
And I run :inspector
|
||||
Then the error "Please enable developer-extras before using the webinspector!" should be shown
|
||||
|
||||
@not_xvfb @posix
|
||||
@no_xvfb @posix
|
||||
Scenario: Inspector smoke test
|
||||
When I set general -> developer-extras to true
|
||||
And I run :inspector
|
||||
@ -124,7 +124,7 @@ Feature: Various utility commands.
|
||||
Then the error "Please enable developer-extras before using the webinspector!" should be shown
|
||||
|
||||
# Different code path as an inspector got created now
|
||||
@not_xvfb @posix
|
||||
@no_xvfb @posix
|
||||
Scenario: Inspector smoke test 2
|
||||
When I set general -> developer-extras to true
|
||||
And I run :inspector
|
||||
@ -202,7 +202,7 @@ Feature: Various utility commands.
|
||||
|
||||
# :debug-console
|
||||
|
||||
@not_xvfb
|
||||
@no_xvfb
|
||||
Scenario: :debug-console smoke test
|
||||
When I run :debug-console
|
||||
And I wait for "Focus object changed: <qutebrowser.misc.consolewidget.ConsoleLineEdit *>" in the log
|
||||
|
2
tox.ini
2
tox.ini
@ -38,12 +38,12 @@ deps =
|
||||
pytest-travis-fold==1.2.0
|
||||
pytest-repeat==0.2
|
||||
pytest-rerunfailures==1.0.1
|
||||
pytest-xvfb==0.1.0
|
||||
six==1.10.0
|
||||
termcolor==1.1.0
|
||||
vulture==0.8.1
|
||||
Werkzeug==0.11.4
|
||||
wheel==0.29.0
|
||||
xvfbwrapper==0.2.8
|
||||
cherrypy==5.0.1
|
||||
commands =
|
||||
{envpython} scripts/link_pyqt.py --tox {envdir}
|
||||
|
Loading…
Reference in New Issue
Block a user