Make configinit tests run with all setups

This commit is contained in:
Florian Bruhin 2018-06-12 10:52:22 +02:00
parent 5b5657b0d5
commit e066f83a7c
2 changed files with 26 additions and 21 deletions

View File

@ -36,6 +36,8 @@ qt58 = pytest.mark.skipif(
qtutils.version_check('5.9'), reason="Needs Qt 5.8 or earlier") qtutils.version_check('5.9'), reason="Needs Qt 5.8 or earlier")
qt59 = pytest.mark.skipif( qt59 = pytest.mark.skipif(
not qtutils.version_check('5.9'), reason="Needs Qt 5.9 or newer") not qtutils.version_check('5.9'), reason="Needs Qt 5.9 or newer")
qt510 = pytest.mark.skipif(
not qtutils.version_check('5.10'), reason="Needs Qt 5.10 or newer")
skip_qt511 = pytest.mark.skipif( skip_qt511 = pytest.mark.skipif(
qtutils.version_check('5.11'), reason="Needs Qt 5.10 or earlier") qtutils.version_check('5.11'), reason="Needs Qt 5.10 or earlier")

View File

@ -29,6 +29,7 @@ from qutebrowser import qutebrowser
from qutebrowser.config import (config, configexc, configfiles, configinit, from qutebrowser.config import (config, configexc, configfiles, configinit,
configdata, configtypes) configdata, configtypes)
from qutebrowser.utils import objreg, usertypes from qutebrowser.utils import objreg, usertypes
from helpers import utils
@pytest.fixture @pytest.fixture
@ -416,51 +417,53 @@ class TestQtArgs:
expected = [sys.argv[0], '--disable-gpu'] expected = [sys.argv[0], '--disable-gpu']
assert configinit.qt_args(parsed) == expected assert configinit.qt_args(parsed) == expected
@pytest.mark.parametrize('backend, new_version, autoplay, added', [ @utils.qt510
(usertypes.Backend.QtWebEngine, True, False, False), # new @pytest.mark.parametrize('new_version, autoplay, added', [
(usertypes.Backend.QtWebKit, False, False, False), # QtWebKit (True, False, False), # new enough to not need it
(usertypes.Backend.QtWebEngine, False, True, False), # enabled (False, True, False), # autoplay enabled
(usertypes.Backend.QtWebEngine, False, False, True), (False, False, True),
]) ])
def test_autoplay(self, config_stub, monkeypatch, parser, def test_autoplay(self, config_stub, monkeypatch, parser,
backend, new_version, autoplay, added): new_version, autoplay, added):
monkeypatch.setattr(configinit.objects, 'backend',
usertypes.Backend.QtWebEngine)
config_stub.val.content.autoplay = autoplay config_stub.val.content.autoplay = autoplay
monkeypatch.setattr(configinit.qtutils, 'version_check', monkeypatch.setattr(configinit.qtutils, 'version_check',
lambda version, compiled=False: new_version) lambda version, compiled=False: new_version)
monkeypatch.setattr(configinit.objects, 'backend', backend)
parsed = parser.parse_args([]) parsed = parser.parse_args([])
args = configinit.qt_args(parsed) args = configinit.qt_args(parsed)
assert ('--autoplay-policy=user-gesture-required' in args) == added assert ('--autoplay-policy=user-gesture-required' in args) == added
@pytest.mark.parametrize('backend, new_version, public_only, added', [ @utils.qt59
(usertypes.Backend.QtWebEngine, True, True, False), # new @pytest.mark.parametrize('new_version, public_only, added', [
(usertypes.Backend.QtWebKit, False, True, False), # QtWebKit (True, True, False), # new enough to not need it
(usertypes.Backend.QtWebEngine, False, False, False), # disabled (False, False, False), # option disabled
(usertypes.Backend.QtWebEngine, False, True, True), (False, True, True),
]) ])
def test_webrtc(self, config_stub, monkeypatch, parser, def test_webrtc(self, config_stub, monkeypatch, parser,
backend, new_version, public_only, added): new_version, public_only, added):
monkeypatch.setattr(configinit.objects, 'backend',
usertypes.Backend.QtWebEngine)
config_stub.val.content.webrtc_public_interfaces_only = public_only config_stub.val.content.webrtc_public_interfaces_only = public_only
monkeypatch.setattr(configinit.qtutils, 'version_check', monkeypatch.setattr(configinit.qtutils, 'version_check',
lambda version, compiled=False: new_version) lambda version, compiled=False: new_version)
monkeypatch.setattr(configinit.objects, 'backend', backend)
parsed = parser.parse_args([]) parsed = parser.parse_args([])
args = configinit.qt_args(parsed) args = configinit.qt_args(parsed)
arg = '--force-webrtc-ip-handling-policy=default_public_interface_only' arg = '--force-webrtc-ip-handling-policy=default_public_interface_only'
assert (arg in args) == added assert (arg in args) == added
@pytest.mark.parametrize('backend, canvas_reading, added', [ @pytest.mark.parametrize('canvas_reading, added', [
(usertypes.Backend.QtWebEngine, True, False), # enabled (True, False), # canvas reading enabled
(usertypes.Backend.QtWebKit, False, False), # QtWebKit (False, True),
(usertypes.Backend.QtWebEngine, False, True),
]) ])
def test_canvas_reading(self, config_stub, monkeypatch, parser, def test_canvas_reading(self, config_stub, monkeypatch, parser,
backend, canvas_reading, added): canvas_reading, added):
config_stub.val.content.canvas_reading = canvas_reading monkeypatch.setattr(configinit.objects, 'backend',
monkeypatch.setattr(configinit.objects, 'backend', backend) usertypes.Backend.QtWebEngine)
config_stub.val.content.canvas_reading = canvas_reading
parsed = parser.parse_args([]) parsed = parser.parse_args([])
args = configinit.qt_args(parsed) args = configinit.qt_args(parsed)
assert ('--disable-reading-from-canvas' in args) == added assert ('--disable-reading-from-canvas' in args) == added