From 0e64511d635aecf32283138936a4c4f36d22375e Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 9 Oct 2017 06:52:14 +0200 Subject: [PATCH] Split up _init_envvars from configinit.early_init --- qutebrowser/config/configinit.py | 5 +++++ tests/unit/config/test_configinit.py | 18 ++++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/qutebrowser/config/configinit.py b/qutebrowser/config/configinit.py index 20e1a371e..162b5ddb5 100644 --- a/qutebrowser/config/configinit.py +++ b/qutebrowser/config/configinit.py @@ -76,6 +76,11 @@ def early_init(args): except configexc.Error as e: message.error("set: {} - {}".format(e.__class__.__name__, e)) + _init_envvars() + + +def _init_envvars(): + """Initialize environment variables which need to be set early.""" if (objects.backend == usertypes.Backend.QtWebEngine and config.val.force_software_rendering): os.environ['QT_XCB_FORCE_SOFTWARE_OPENGL'] = '1' diff --git a/tests/unit/config/test_configinit.py b/tests/unit/config/test_configinit.py index 9ef920061..c210f3122 100644 --- a/tests/unit/config/test_configinit.py +++ b/tests/unit/config/test_configinit.py @@ -196,22 +196,22 @@ class TestEarlyInit: assert msg.text == "set: NoOptionError - No option 'foo'" assert 'colors.completion.fg' not in config.instance._values - def test_force_software_rendering(self, monkeypatch, init_patch, args): + def test_force_software_rendering(self, monkeypatch, config_stub): """Setting force_software_rendering should set the environment var.""" envvar = 'QT_XCB_FORCE_SOFTWARE_OPENGL' monkeypatch.setattr(configinit.objects, 'backend', usertypes.Backend.QtWebEngine) monkeypatch.delenv(envvar, raising=False) - args.temp_settings = [('force_software_rendering', 'true')] - args.backend = 'webengine' - configinit.early_init(args) + config_stub.val.force_software_rendering = True + + configinit._init_envvars() assert os.environ[envvar] == '1' @pytest.mark.parametrize('old', ['1', '0', None]) @pytest.mark.parametrize('configval', [True, False]) - def test_hide_wayland_decoration(self, monkeypatch, init_patch, args, + def test_hide_wayland_decoration(self, monkeypatch, config_stub, old, configval): envvar = 'QT_WAYLAND_DISABLE_WINDOWDECORATION' if old is None: @@ -219,12 +219,10 @@ class TestEarlyInit: else: monkeypatch.setenv(envvar, old) - args.temp_settings = [('window.hide_wayland_decoration', - str(configval))] - configinit.early_init(args) + config_stub.val.window.hide_wayland_decoration = configval + configinit._init_envvars() - expected = '1' if configval else None - assert os.environ.get(envvar) == expected + assert os.environ.get(envvar) == ('1' if configval else None) @pytest.mark.parametrize('errors', [True, False])