From 0de7b2eb832442dc097aee1a1cf69d8a4284742e Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Wed, 13 Sep 2017 23:32:26 +0200 Subject: [PATCH] Skip standarddir migrations when a basedir is given --- qutebrowser/utils/standarddir.py | 2 +- tests/unit/utils/test_standarddir.py | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/qutebrowser/utils/standarddir.py b/qutebrowser/utils/standarddir.py index 6415cb8b7..eff2a4e23 100644 --- a/qutebrowser/utils/standarddir.py +++ b/qutebrowser/utils/standarddir.py @@ -266,7 +266,7 @@ def init(args): _init_dirs(args) _init_cachedir_tag() - if args is not None: + if args is not None and getattr(args, 'basedir', None) is None: _move_webengine_data() if sys.platform == 'darwin': # pragma: no cover _move_macos() diff --git a/tests/unit/utils/test_standarddir.py b/tests/unit/utils/test_standarddir.py index 001e3512f..9f460e7e5 100644 --- a/tests/unit/utils/test_standarddir.py +++ b/tests/unit/utils/test_standarddir.py @@ -475,8 +475,8 @@ class TestDataMigrations: 'qutebrowser.conf').exists() -@pytest.mark.parametrize('with_args', [True, False]) -def test_init(mocker, tmpdir, with_args): +@pytest.mark.parametrize('args_kind', ['basedir', 'normal', 'none']) +def test_init(mocker, tmpdir, args_kind): """Do some sanity checks for standarddir.init(). Things like _init_cachedir_tag() and _move_webengine_data() are tested in @@ -484,18 +484,21 @@ def test_init(mocker, tmpdir, with_args): """ assert standarddir._locations == {} - if with_args: + m = mocker.patch('qutebrowser.utils.standarddir._move_webengine_data') + m_windows = mocker.patch('qutebrowser.utils.standarddir._move_windows') + m_mac = mocker.patch('qutebrowser.utils.standarddir._move_macos') + if args_kind == 'normal': + args = types.SimpleNamespace(basedir=None) + elif args_kind == 'basedir': args = types.SimpleNamespace(basedir=str(tmpdir)) - m = mocker.patch('qutebrowser.utils.standarddir._move_webengine_data') - m_windows = mocker.patch('qutebrowser.utils.standarddir._move_windows') - m_mac = mocker.patch('qutebrowser.utils.standarddir._move_macos') else: + assert args_kind == 'none' args = None standarddir.init(args) assert standarddir._locations != {} - if with_args: + if args_kind == 'normal': assert m.called if sys.platform == 'darwin': assert not m_windows.called @@ -506,6 +509,10 @@ def test_init(mocker, tmpdir, with_args): else: assert not m_windows.called assert not m_mac.called + else: + assert not m.called + assert not m_windows.called + assert not m_mac.called @pytest.mark.linux