Simplify patching in test_qtargs.py
This commit is contained in:
parent
1a3a24d17c
commit
d56e01118c
|
|
@ -52,10 +52,14 @@ def version_patcher(monkeypatch):
|
|||
|
||||
|
||||
@pytest.fixture
|
||||
def reduce_args(config_stub, version_patcher):
|
||||
def reduce_args(config_stub, version_patcher, monkeypatch):
|
||||
"""Make sure no --disable-shared-workers/referer argument get added."""
|
||||
version_patcher('5.15.0')
|
||||
version_patcher('5.15.3')
|
||||
config_stub.val.content.headers.referer = 'always'
|
||||
config_stub.val.scrolling.bar = 'never'
|
||||
monkeypatch.setattr(qtargs.utils, 'is_mac', False)
|
||||
# Avoid WebRTC pipewire feature
|
||||
monkeypatch.setattr(qtargs.utils, 'is_linux', False)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures('reduce_args')
|
||||
|
|
@ -78,11 +82,6 @@ class TestQtArgs:
|
|||
])
|
||||
def test_qt_args(self, monkeypatch, config_stub, args, expected, parser):
|
||||
"""Test commandline with no Qt arguments given."""
|
||||
# Avoid scrollbar overlay argument
|
||||
config_stub.val.scrolling.bar = 'never'
|
||||
# Avoid WebRTC pipewire feature
|
||||
monkeypatch.setattr(qtargs.utils, 'is_linux', False)
|
||||
|
||||
parsed = parser.parse_args(args)
|
||||
assert qtargs.qt_args(parsed) == expected
|
||||
|
||||
|
|
@ -126,9 +125,10 @@ def test_no_webengine_available(monkeypatch, config_stub, parser, stubs):
|
|||
class TestWebEngineArgs:
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def ensure_webengine(self):
|
||||
def ensure_webengine(self, monkeypatch):
|
||||
"""Skip all tests if QtWebEngine is unavailable."""
|
||||
pytest.importorskip("PyQt5.QtWebEngine")
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
|
||||
@pytest.mark.parametrize('backend, qt_version, expected', [
|
||||
(usertypes.Backend.QtWebEngine, '5.13.0', False),
|
||||
|
|
@ -184,7 +184,6 @@ class TestWebEngineArgs:
|
|||
(['--debug-flag', 'wait-renderer-process'], ['--renderer-startup-dialog']),
|
||||
])
|
||||
def test_chromium_flags(self, monkeypatch, parser, flags, args):
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
parsed = parser.parse_args(flags)
|
||||
args = qtargs.qt_args(parsed)
|
||||
|
||||
|
|
@ -203,7 +202,6 @@ class TestWebEngineArgs:
|
|||
('chromium', True),
|
||||
])
|
||||
def test_disable_gpu(self, config, added, config_stub, monkeypatch, parser):
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
config_stub.val.qt.force_software_rendering = config
|
||||
parsed = parser.parse_args([])
|
||||
args = qtargs.qt_args(parsed)
|
||||
|
|
@ -225,7 +223,6 @@ class TestWebEngineArgs:
|
|||
'disable_non_proxied_udp'),
|
||||
])
|
||||
def test_webrtc(self, config_stub, monkeypatch, parser, policy, arg):
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
config_stub.val.content.webrtc_ip_handling_policy = policy
|
||||
|
||||
parsed = parser.parse_args([])
|
||||
|
|
@ -241,10 +238,7 @@ class TestWebEngineArgs:
|
|||
(True, False), # canvas reading enabled
|
||||
(False, True),
|
||||
])
|
||||
def test_canvas_reading(self, config_stub, monkeypatch, parser,
|
||||
canvas_reading, added):
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
|
||||
def test_canvas_reading(self, config_stub, parser, canvas_reading, added):
|
||||
config_stub.val.content.canvas_reading = canvas_reading
|
||||
parsed = parser.parse_args([])
|
||||
args = qtargs.qt_args(parsed)
|
||||
|
|
@ -255,10 +249,7 @@ class TestWebEngineArgs:
|
|||
('process-per-site', True),
|
||||
('single-process', True),
|
||||
])
|
||||
def test_process_model(self, config_stub, monkeypatch, parser,
|
||||
process_model, added):
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
|
||||
def test_process_model(self, config_stub, parser, process_model, added):
|
||||
config_stub.val.qt.process_model = process_model
|
||||
parsed = parser.parse_args([])
|
||||
args = qtargs.qt_args(parsed)
|
||||
|
|
@ -276,10 +267,7 @@ class TestWebEngineArgs:
|
|||
('always', '--enable-low-end-device-mode'),
|
||||
('never', '--disable-low-end-device-mode'),
|
||||
])
|
||||
def test_low_end_device_mode(self, config_stub, monkeypatch, parser,
|
||||
low_end_device_mode, arg):
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
|
||||
def test_low_end_device_mode(self, config_stub, parser, low_end_device_mode, arg):
|
||||
config_stub.val.qt.low_end_device_mode = low_end_device_mode
|
||||
parsed = parser.parse_args([])
|
||||
args = qtargs.qt_args(parsed)
|
||||
|
|
@ -307,16 +295,10 @@ class TestWebEngineArgs:
|
|||
('5.14.0', 'same-domain', '--enable-features=ReducedReferrerGranularity'),
|
||||
('5.15.0', 'same-domain', '--enable-features=ReducedReferrerGranularity'),
|
||||
])
|
||||
def test_referer(self, config_stub, monkeypatch, version_patcher, parser,
|
||||
def test_referer(self, config_stub, version_patcher, parser,
|
||||
qt_version, referer, arg):
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
version_patcher(qt_version)
|
||||
|
||||
# Avoid WebRTC pipewire feature
|
||||
monkeypatch.setattr(qtargs.utils, 'is_linux', False)
|
||||
# Avoid overlay scrollbar feature
|
||||
config_stub.val.scrolling.bar = 'never'
|
||||
|
||||
config_stub.val.content.headers.referer = referer
|
||||
parsed = parser.parse_args([])
|
||||
args = qtargs.qt_args(parsed)
|
||||
|
|
@ -380,10 +362,7 @@ class TestWebEngineArgs:
|
|||
])
|
||||
def test_overlay_scrollbar(self, config_stub, monkeypatch, parser,
|
||||
bar, is_mac, added):
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
monkeypatch.setattr(qtargs.utils, 'is_mac', is_mac)
|
||||
# Avoid WebRTC pipewire feature
|
||||
monkeypatch.setattr(qtargs.utils, 'is_linux', False)
|
||||
|
||||
config_stub.val.scrolling.bar = bar
|
||||
|
||||
|
|
@ -392,15 +371,6 @@ class TestWebEngineArgs:
|
|||
|
||||
assert ('--enable-features=OverlayScrollbar' in args) == added
|
||||
|
||||
@pytest.fixture
|
||||
def feature_flag_patch(self, monkeypatch, config_stub, version_patcher):
|
||||
"""Patch away things affecting feature flags."""
|
||||
config_stub.val.scrolling.bar = 'never'
|
||||
version_patcher('5.15.3')
|
||||
monkeypatch.setattr(qtargs.utils, 'is_mac', False)
|
||||
# Avoid WebRTC pipewire feature
|
||||
monkeypatch.setattr(qtargs.utils, 'is_linux', False)
|
||||
|
||||
@pytest.mark.parametrize('via_commandline', [True, False])
|
||||
@pytest.mark.parametrize('overlay, passed_features, expected_features', [
|
||||
(True,
|
||||
|
|
@ -413,7 +383,7 @@ class TestWebEngineArgs:
|
|||
'CustomFeature',
|
||||
'CustomFeature'),
|
||||
])
|
||||
def test_overlay_features_flag(self, config_stub, parser, feature_flag_patch,
|
||||
def test_overlay_features_flag(self, config_stub, parser,
|
||||
via_commandline, overlay, passed_features,
|
||||
expected_features):
|
||||
"""If enable-features is already specified, we should combine both."""
|
||||
|
|
@ -442,7 +412,7 @@ class TestWebEngineArgs:
|
|||
['CustomFeature'],
|
||||
['CustomFeature1', 'CustomFeature2'],
|
||||
])
|
||||
def test_disable_features_passthrough(self, config_stub, parser, feature_flag_patch,
|
||||
def test_disable_features_passthrough(self, config_stub, parser,
|
||||
via_commandline, passed_features):
|
||||
flag = qtargs._DISABLE_FEATURES + ','.join(passed_features)
|
||||
|
||||
|
|
@ -458,7 +428,7 @@ class TestWebEngineArgs:
|
|||
]
|
||||
assert disable_features_args == [flag]
|
||||
|
||||
def test_blink_settings_passthrough(self, parser, config_stub, feature_flag_patch):
|
||||
def test_blink_settings_passthrough(self, parser, config_stub):
|
||||
config_stub.val.colors.webpage.darkmode.enabled = True
|
||||
|
||||
flag = qtargs._BLINK_SETTINGS + 'foo=bar'
|
||||
|
|
@ -518,7 +488,6 @@ class TestWebEngineArgs:
|
|||
def test_dark_mode_settings(self, config_stub, monkeypatch, parser,
|
||||
variant, expected):
|
||||
from qutebrowser.browser.webengine import darkmode
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
monkeypatch.setattr(
|
||||
darkmode, '_variant', lambda _versions: darkmode.Variant[variant])
|
||||
|
||||
|
|
@ -530,7 +499,6 @@ class TestWebEngineArgs:
|
|||
for arg in expected:
|
||||
assert arg in args
|
||||
|
||||
@pytest.mark.linux
|
||||
def test_locale_workaround(self, config_stub, monkeypatch, version_patcher,
|
||||
parser):
|
||||
class FakeLocale:
|
||||
|
|
@ -538,9 +506,10 @@ class TestWebEngineArgs:
|
|||
def bcp47Name(self):
|
||||
return 'de-CH'
|
||||
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
monkeypatch.setattr(qtargs, 'QLocale', FakeLocale)
|
||||
monkeypatch.setattr(qtargs.utils, 'is_linux', True)
|
||||
version_patcher('5.15.3')
|
||||
|
||||
config_stub.val.qt.workarounds.locale = True
|
||||
parsed = parser.parse_args([])
|
||||
args = qtargs.qt_args(parsed)
|
||||
|
|
|
|||
Loading…
Reference in New Issue