diff options
| -rw-r--r-- | changes/bug-3778_fix-path-prefix-helper | 1 | ||||
| -rw-r--r-- | src/leap/bitmask/config/leapsettings.py | 12 | ||||
| -rw-r--r-- | src/leap/bitmask/config/tests/test_leapsettings.py | 71 | 
3 files changed, 78 insertions, 6 deletions
| diff --git a/changes/bug-3778_fix-path-prefix-helper b/changes/bug-3778_fix-path-prefix-helper new file mode 100644 index 00000000..e7cec539 --- /dev/null +++ b/changes/bug-3778_fix-path-prefix-helper @@ -0,0 +1 @@ +  o Fix path prefix helper for the bundle and add regresion tests. Closes #3778. diff --git a/src/leap/bitmask/config/leapsettings.py b/src/leap/bitmask/config/leapsettings.py index ad67b29e..7d8b5977 100644 --- a/src/leap/bitmask/config/leapsettings.py +++ b/src/leap/bitmask/config/leapsettings.py @@ -75,12 +75,12 @@ class LeapSettings(object):          """          Constructor -        :param standalone: parameter used to define the location of -        the config +        :param standalone: parameter used to define the location of the config.          :type standalone: bool          """ -        settings_path = os.path.join( -            get_path_prefix(standalone=standalone), "leap", self.CONFIG_NAME) +        self._path_prefix = get_path_prefix(standalone=standalone) +        settings_path = os.path.join(self._path_prefix, +                                     "leap", self.CONFIG_NAME)          self._settings = QtCore.QSettings(settings_path,                                            QtCore.QSettings.IniFormat) @@ -132,8 +132,8 @@ class LeapSettings(object):          # other things, not just the directories          providers = []          try: -            providers_path = os.path.join( -                get_path_prefix(), "leap", "providers") +            providers_path = os.path.join(self._path_prefix, +                                          "leap", "providers")              providers = os.listdir(providers_path)          except Exception as e:              logger.debug("Error listing providers, assume there are none. %r" diff --git a/src/leap/bitmask/config/tests/test_leapsettings.py b/src/leap/bitmask/config/tests/test_leapsettings.py new file mode 100644 index 00000000..18166923 --- /dev/null +++ b/src/leap/bitmask/config/tests/test_leapsettings.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +# test_leapsettings.py +# Copyright (C) 2013 LEAP +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +""" +Tests for leapsettings module. +""" + +try: +    import unittest2 as unittest +except ImportError: +    import unittest + +import os +import mock + +from leap.common.testing.basetest import BaseLeapTest +from leap.bitmask.config.leapsettings import LeapSettings + + +class LeapSettingsTest(BaseLeapTest): +    """Tests for LeapSettings""" + +    def setUp(self): +        pass + +    def tearDown(self): +        pass + +    def test_get_configured_providers(self): +        """ +        Test that the config file IS NOT stored under the CWD. +        """ +        self._leapsettings = LeapSettings() +        with mock.patch('os.listdir') as os_listdir: +            # use this method only to spy where LeapSettings is looking for +            self._leapsettings.get_configured_providers() +            args, kwargs = os_listdir.call_args +            config_dir = args[0] +            self.assertFalse(config_dir.startswith(os.getcwd())) +            self.assertFalse(config_dir.endswith('config')) + +    def test_get_configured_providers_in_bundle(self): +        """ +        Test that the config file IS stored under the CWD. +        """ +        self._leapsettings = LeapSettings(standalone=True) +        with mock.patch('os.listdir') as os_listdir: +            # use this method only to spy where LeapSettings is looking for +            self._leapsettings.get_configured_providers() +            args, kwargs = os_listdir.call_args +            config_dir = args[0] +            self.assertTrue(config_dir.startswith(os.getcwd())) +            self.assertFalse(config_dir.endswith('config')) + + +if __name__ == "__main__": +    unittest.main() | 
