summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-03-17 17:34:23 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-03-17 17:34:23 +0100
commitd56e01118c9272e1bd2557a88858dc5eae05d01c (patch)
tree8a8e806ea3aa812a141b1fe66f3506c5f857e1f0
parent1a3a24d17c87fe661b7414516a9908640ad8505e (diff)
downloadqutebrowser-d56e01118c9272e1bd2557a88858dc5eae05d01c.tar.gz
qutebrowser-d56e01118c9272e1bd2557a88858dc5eae05d01c.zip
Simplify patching in test_qtargs.py
-rw-r--r--tests/unit/config/test_qtargs.py65
1 files changed, 17 insertions, 48 deletions
diff --git a/tests/unit/config/test_qtargs.py b/tests/unit/config/test_qtargs.py
index 695649213..e12eeaea9 100644
--- a/tests/unit/config/test_qtargs.py
+++ b/tests/unit/config/test_qtargs.py
@@ -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)