summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-03-23 22:42:57 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-03-23 22:44:10 +0100
commit2f8fbff53a34adfbf4fe3e295de795fd4135ddcb (patch)
tree620cfb961deeac079f4167ebe9825764f6c32565
parentfa483821624d93111854b0d7825d7fcd885ba5ad (diff)
downloadqutebrowser-2f8fbff53a34adfbf4fe3e295de795fd4135ddcb.tar.gz
qutebrowser-2f8fbff53a34adfbf4fe3e295de795fd4135ddcb.zip
standarddir: Fix custom basedirs with flatpak
See https://github.com/flathub/org.qutebrowser.qutebrowser/issues/18#issuecomment-802827816 (cherry picked from commit 74c9f66752f077c4b94927c15aec801a1ab88a22)
-rw-r--r--qutebrowser/utils/standarddir.py13
-rw-r--r--tests/unit/utils/test_standarddir.py13
2 files changed, 16 insertions, 10 deletions
diff --git a/qutebrowser/utils/standarddir.py b/qutebrowser/utils/standarddir.py
index 2e8f23ba5..447515ecd 100644
--- a/qutebrowser/utils/standarddir.py
+++ b/qutebrowser/utils/standarddir.py
@@ -232,14 +232,13 @@ def _init_runtime(args: Optional[argparse.Namespace]) -> None:
# Unfortunately this path could get too long for sockets (which have a
# maximum length of 104 chars), so we don't add the username here...
- from qutebrowser.utils import version
- if version.is_sandboxed():
- *parts, app_name = os.path.split(path)
- assert app_name == APPNAME, app_name
- path = os.path.join(*parts, 'app', os.environ['FLATPAK_ID'])
- else:
- _create(path)
+ from qutebrowser.utils import version
+ if version.is_sandboxed():
+ *parts, app_name = os.path.split(path)
+ assert app_name == APPNAME, app_name
+ path = os.path.join(*parts, 'app', os.environ['FLATPAK_ID'])
+ _create(path)
_locations[_Location.runtime] = path
diff --git a/tests/unit/utils/test_standarddir.py b/tests/unit/utils/test_standarddir.py
index 9196e584d..b663846e0 100644
--- a/tests/unit/utils/test_standarddir.py
+++ b/tests/unit/utils/test_standarddir.py
@@ -203,19 +203,26 @@ class TestStandardDir:
assert standarddir.runtime() == str(tmpdir_env / APPNAME)
@pytest.mark.linux
- def test_flatpak_runtimedir(self, monkeypatch, tmp_path):
+ @pytest.mark.parametrize('args_basedir', [True, False])
+ def test_flatpak_runtimedir(self, monkeypatch, tmp_path, args_basedir):
runtime_path = tmp_path / 'runtime'
runtime_path.mkdir()
runtime_path.chmod(0o0700)
app_id = 'org.qutebrowser.qutebrowser'
- expected = runtime_path / 'app' / app_id
monkeypatch.setattr(version, 'is_sandboxed', lambda: True)
monkeypatch.setenv('XDG_RUNTIME_DIR', str(runtime_path))
monkeypatch.setenv('FLATPAK_ID', app_id)
- standarddir._init_runtime(args=None)
+ if args_basedir:
+ init_args = types.SimpleNamespace(basedir=str(tmp_path))
+ expected = tmp_path / 'runtime'
+ else:
+ init_args = None
+ expected = runtime_path / 'app' / app_id
+
+ standarddir._init_runtime(args=init_args)
assert standarddir.runtime() == str(expected)
@pytest.mark.fake_os('windows')