summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pkg/requirements.pip1
-rw-r--r--setup.py1
-rw-r--r--src/leap/common/config/__init__.py22
-rw-r--r--tests/config/test_get_path_prefix.py26
4 files changed, 36 insertions, 14 deletions
diff --git a/pkg/requirements.pip b/pkg/requirements.pip
index b2be31f..b02c8b5 100644
--- a/pkg/requirements.pip
+++ b/pkg/requirements.pip
@@ -3,5 +3,4 @@ pyopenssl
python-dateutil
pyzmq>=14.4.1
txzmq>=0.7.3
-https://launchpad.net/dirspec/stable-13-10/13.10/+download/dirspec-13.10.tar.gz
-e .
diff --git a/setup.py b/setup.py
index e23ca7d..4269718 100644
--- a/setup.py
+++ b/setup.py
@@ -30,7 +30,6 @@ dependency_links = [requirement for requirement
in requirements if requirement.startswith('http')]
requirements = [requirement for requirement
in requirements if requirement not in dependency_links]
-requirements.append('dirspec')
tests_requirements = [
'mock',
diff --git a/src/leap/common/config/__init__.py b/src/leap/common/config/__init__.py
index 68d92dc..15c6fea 100644
--- a/src/leap/common/config/__init__.py
+++ b/src/leap/common/config/__init__.py
@@ -18,8 +18,22 @@
Common configs
"""
import os
+import sys
-from dirspec.basedir import get_xdg_config_home
+
+def _get_xdg_config_home():
+ if sys.platform == 'win32':
+ from win32com.shell import shell, shellcon
+ get_path = lambda name: shell.SHGetFolderPath(
+ 0, getattr(shellcon, name), None, 0).encode('utf8')
+ path = get_path('CSIDL_LOCAL_APPDATA')
+ elif sys.platform == 'darwin':
+ user_home = os.path.expanduser('~')
+ path = os.path.join(user_home, 'Library', 'Preferences')
+ else:
+ user_home = os.path.expanduser('~')
+ path = os.path.join(user_home, '.config')
+ return path
def get_path_prefix(standalone=False):
@@ -32,8 +46,6 @@ def get_path_prefix(standalone=False):
configuration storage.
:type standalone: bool
"""
- config_home = get_xdg_config_home()
if standalone:
- config_home = os.path.join(os.getcwd(), "config")
-
- return config_home
+ return os.path.join(os.getcwd(), "config")
+ return _get_xdg_config_home()
diff --git a/tests/config/test_get_path_prefix.py b/tests/config/test_get_path_prefix.py
index e383a7e..878e2fe 100644
--- a/tests/config/test_get_path_prefix.py
+++ b/tests/config/test_get_path_prefix.py
@@ -19,11 +19,8 @@ Tests for get_path_prefix
"""
import os
import mock
-
-try:
- import unittest2 as unittest
-except ImportError:
- import unittest
+import pytest
+import sys
from leap.common.config import get_path_prefix
from leap.common.testing.basetest import BaseLeapTest
@@ -58,6 +55,21 @@ class GetPathPrefixTest(BaseLeapTest):
path = get_path_prefix(standalone=False)
self.assertNotEquals(path, standalone_path)
+homedir = os.environ.get('HOME')
+
-if __name__ == "__main__":
- unittest.main(verbosity=2)
+@pytest.mark.parametrize(
+ "scenario", [
+ # (platform, path_parts, standalone),
+ ('linux', [homedir, '.config'], False),
+ ('darwin', [homedir, 'Library/Preferences'], False),
+ ('win32', [homedir, 'xyz'], False),
+ ('standalone', [os.getcwd(), 'config'], True)])
+def test_get_path_prefix(scenario, monkeypatch):
+ platform, path_parts, standalone = scenario
+ if platform == 'win32':
+ pytest.skip() # TODO: find a way to add test for win32 platform
+ # set a custom temporary platform
+ monkeypatch.setattr(sys, 'platform', platform)
+ expected_prefix = os.path.join(*path_parts)
+ assert expected_prefix == get_path_prefix(standalone)