Introduction
Introduction Statistics Contact Development Disclaimer Help
Respect XDG_CONFIG_HOME env variable - toot - Unnamed repository; edit this fil…
Log
Files
Refs
LICENSE
---
commit 455e531194a896490905a4e78c3a3dff10eb300b
parent 536328f56b3050e966ff44f3127e8270cad61dd6
Author: Ivan Habunek <[email protected]>
Date: Sun, 14 Jan 2018 15:28:05 +0100
Respect XDG_CONFIG_HOME env variable
to locate configuration home directory.
fixes #12
Diffstat:
CHANGELOG.md | 6 ++++++
tests/test_config.py | 17 +++++++++++++++++
toot/config.py | 14 ++++++++++----
3 files changed, 33 insertions(+), 4 deletions(-)
---
diff --git a/CHANGELOG.md b/CHANGELOG.md
@@ -1,6 +1,12 @@
Changelog
---------
+**0.17.0 (TBA)**
+
+* Changed configuration file format to allow switching between multiple logged
+ in accounts (#32)
+* Respect XDG_CONFIG_HOME environment variable to locate config home (#12)
+
**0.16.2 (2018-01-02)**
* No changes, pushed to fix a packaging issue
diff --git a/tests/test_config.py b/tests/test_config.py
@@ -1,3 +1,4 @@
+import os
import pytest
from toot import User, App, config
@@ -119,3 +120,19 @@ def test_delete_app(sample_config):
config.delete_app.__wrapped__(sample_config, app)
assert 'foo.social' not in sample_config['apps']
assert len(sample_config['apps']) == app_count - 1
+
+
+def test_get_config_file_path():
+ fn = config.get_config_file_path
+
+ os.unsetenv('XDG_CONFIG_HOME')
+
+ assert fn() == os.path.expanduser('~/.config/toot/config.json')
+
+ os.environ['XDG_CONFIG_HOME'] = '/foo/bar/config'
+
+ assert fn() == '/foo/bar/config/toot/config.json'
+
+ os.environ['XDG_CONFIG_HOME'] = '~/foo/config'
+
+ assert fn() == os.path.expanduser('~/foo/config/toot/config.json')
diff --git a/toot/config.py b/toot/config.py
@@ -11,12 +11,18 @@ from toot.exceptions import ConsoleError
from toot.output import print_out
-# The file holding toot configuration
-CONFIG_FILE = os.environ['HOME'] + '/.config/toot/config.json'
+def get_config_file_path():
+ """Returns the path to toot config file
+
+ Attempts to locate config home dir from XDG_CONFIG_HOME env variable.
+ See: https://specifications.freedesktop.org/basedir-spec/basedir-spec-late…
+ If not found, defaults to `~/.config`.
+ """
+ config_dir = os.getenv('XDG_CONFIG_HOME', '~/.config')
+ return os.path.expanduser(config_dir + '/toot/config.json')
-def get_config_file_path():
- return CONFIG_FILE
+CONFIG_FILE = get_config_file_path()
def user_id(user):
You are viewing proxied material from vernunftzentrum.de. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.