@@ -24,7 +24,7 @@
 # be downloaded from the FSF web page at:
 # http://www.gnu.org/copyleft/gpl.html
 
-from unittest2 import TestCase
+from unittest import TestCase
 import os
 import tempfile
 import shutil
@@ -111,7 +111,9 @@ def _read_config(self, project_dir):
         cfn = debops.config.get_config_filenames()
         cfn.remove('/etc/debops.cfg')
         debops.config._configfiles = cfn
-        return debops.config.read_config(project_dir)
+        cfg = debops.config.read_config(project_dir)
+        del cfg['paths']
+        return cfg
 
     def test_read_config_files_simple(self):
         dirs = [self._make_configfile(dir, sect, data) for
@@ -179,3 +181,60 @@ def test_read_config_files_with_project_root_precedence(self):
                              {'debops': {'home': '/my/home',
                                          'name1': 'value2'}
                           })
+
+class TestReadConfig2(TestCase):
+
+    def setUp(self):
+        self.sandbox = tempfile.mkdtemp()
+        self.addCleanup(shutil.rmtree, self.sandbox)
+        self._saved_configfiles = debops.config._configfiles[:]
+        # remove '/etc/debobs.cfg' to make results predictable
+        debops.config._configfiles.remove('/etc/debops.cfg')
+
+    def tearDown(self):
+        debops.config._configfiles = self._saved_configfiles[:]
+
+    def _make_configfile(self, dir, sect, *data):
+        dir = os.path.join(self.sandbox, dir)
+        os.makedirs(dir)
+        fn = os.path.join(dir, 'debops.cfg')
+        with open(fn, 'w') as fh:
+            print >> fh, "[%s]" % sect
+            for d in data:
+                print >> fh, d
+        return dir
+
+    def _read_config(self, project_dir):
+        # refresh debops._configfiles with set environment
+        cfn = debops.config.get_config_filenames()
+        cfn.remove('/etc/debops.cfg')
+        debops.config._configfiles = cfn
+        return debops.config.read_config(project_dir)
+
+    def test_defaults(self):
+        dirs = [self._make_configfile(dir, sect, data) for
+                dir, sect, data in (
+                    ['xdg_home', 'xpaths', 'data-home: /opt/my/debops'],
+                )]
+        unsetenv('XDG_CONFIG_HOME')
+        cfg = self._read_config('/non/existing/dir')
+        self.assertDictEqual(
+            cfg['paths'],
+            {'data-home': os.path.expanduser('~/.config/debops'),
+             'install-path': os.path.expanduser('~/.config/debops/debops-playbooks'),
+             'playbooks-paths': [os.path.expanduser('~/.config/debops/debops-playbooks/playbooks')],
+         })
+
+    def test_read_config_files_simple(self):
+        dirs = [self._make_configfile(dir, sect, data) for
+                dir, sect, data in (
+                    ['xdg_home', 'paths', 'data-home: /opt/my/debops'],
+                )]
+        setenv('XDG_CONFIG_HOME', dirs[0])
+        cfg = self._read_config('/non/existing/dir')
+        self.assertDictEqual(
+            cfg['paths'],
+            {'data-home': '/opt/my/debops',
+             'install-path': '/opt/my/debops/debops-playbooks',
+             'playbooks-paths': ['/opt/my/debops/debops-playbooks/playbooks'],
+         })