From d56e01118c9272e1bd2557a88858dc5eae05d01c Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 17 Mar 2021 17:34:23 +0100 Subject: Simplify patching in test_qtargs.py --- tests/unit/config/test_qtargs.py | 65 +++++++++++----------------------------- 1 file 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) -- cgit v1.2.3-54-g00ecf