From 7ed64efa08c9d40153fd5c2f1768634cf5d049a2 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sun, 17 Sep 2017 09:44:34 +0200 Subject: [PATCH] Fix standarddir.cache() on Windows --- qutebrowser/utils/standarddir.py | 7 ++++++- tests/unit/utils/test_standarddir.py | 9 ++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/qutebrowser/utils/standarddir.py b/qutebrowser/utils/standarddir.py index 5e5da849a..a4f4dbd7b 100644 --- a/qutebrowser/utils/standarddir.py +++ b/qutebrowser/utils/standarddir.py @@ -120,7 +120,12 @@ def _init_cache(args): typ = QStandardPaths.CacheLocation overridden, path = _from_args(typ, args) if not overridden: - path = _writable_location(typ) + if os.name == 'nt': + # Local, not Roaming! + data_path = _writable_location(QStandardPaths.DataLocation) + path = os.path.join(data_path, 'cache') + else: + path = _writable_location(typ) _create(path) _locations[Location.cache] = path diff --git a/tests/unit/utils/test_standarddir.py b/tests/unit/utils/test_standarddir.py index 398b6a0ab..b9f790bae 100644 --- a/tests/unit/utils/test_standarddir.py +++ b/tests/unit/utils/test_standarddir.py @@ -67,15 +67,18 @@ def test_fake_mac_config(tmpdir, monkeypatch): # FIXME:conf needs AppDataLocation @pytest.mark.qt55 -@pytest.mark.parametrize('what', ['data', 'config']) +@pytest.mark.parametrize('what', ['data', 'config', 'cache']) @pytest.mark.not_mac -def test_fake_windows_data_config(tmpdir, monkeypatch, what): - """Make sure the config is correct on a fake Windows.""" +def test_fake_windows(tmpdir, monkeypatch, what): + """Make sure the config/data/cache dirs are correct on a fake Windows.""" monkeypatch.setattr(os, 'name', 'nt') monkeypatch.setattr(standarddir.QStandardPaths, 'writableLocation', lambda typ: str(tmpdir / APPNAME)) + standarddir._init_config(args=None) standarddir._init_data(args=None) + standarddir._init_cache(args=None) + func = getattr(standarddir, what) assert func() == str(tmpdir / APPNAME / what)