Example #1
0
    def test_setup_non_existing_default_public_key(self, _get_user_config,
                                                   _is_key_valid,
                                                   _set_user_config,
                                                   _create_default_ssh):
        user = UserController(Mock(), Settings())
        user.api.read_users.return_value = [{'username': '******'}]
        args = Mock(email='*****@*****.**',
                    ssh_key_path='/default/path/to/key',
                    ssh_auth='yes')

        _is_key_valid.return_value = False
        _get_user_config.return_value = {}

        user.setup(args)

        self.assertTrue(user.api.read_users.called)
        self.assertTrue(user.api.create_user_key.called)
        self.assertTrue(_create_default_ssh.called)
        self.assertEqual(2, len(_set_user_config.mock_calls))
        self.assertEqual(call(user.settings, email='*****@*****.**'),
                         _set_user_config.mock_calls[0])
        self.assertEqual(
            call(user.settings, ssh_auth=True,
                 ssh_path='/default/path/to/key'),
            _set_user_config.mock_calls[1])
Example #2
0
 def test_add_config_force_arg(self, parse_config_variables):
     app = AppController(None, Settings())
     app.api = Mock()
     args = Mock()
     args.name = 'app/dep'
     args.force_add = False
     args.variables = ['foo=bar', '--force']
     app.addConfig(args)
     self.assertTrue(parse_config_variables.called)
     self.assertTrue(app.api.update_addon.called)
Example #3
0
    def test_add_config_duplicated_flag(self, parse_config_variables):
        app = AppController(None, Settings())
        app.api = Mock()
        args = Mock()
        args.name = 'app/dep'
        args.force_add = True
        args.variables = ['foo=bar', '-f']
        with self.assertRaises(InputErrorException) as df:
            app.addConfig(args)

        self.assertEqual('[ERROR] Please, specify a flag only once.',
                         str(df.exception))
        self.assertFalse(parse_config_variables.called)
        self.assertFalse(app.api.update_addon.called)
Example #4
0
    def test_add_config_no_variables_given(self, parse_config_variables):
        app = AppController(None, Settings())
        app.api = Mock()
        args = Mock()
        args.name = 'app/dep'
        args.force_add = False
        args.variables = None
        with self.assertRaises(InputErrorException) as nvg:
            app.addConfig(args)

        self.assertEqual('[ERROR] You must provide some variables.',
                         str(nvg.exception))
        self.assertFalse(parse_config_variables.called)
        self.assertFalse(app.api.update_addon.called)
Example #5
0
    def test_setup_wrong_public_key(self, _is_key_valid, *args):
        user = UserController(Mock(), Settings())
        args = Mock(email='*****@*****.**',
                    ssh_key_path='not-existing',
                    ssh_auth='yes')

        _is_key_valid.return_value = False

        with self.assertRaises(InputErrorException) as iep:
            user.setup(args)

        self.assertEqual('[ERROR] Public Key not found or invalid.',
                         str(iep.exception))
        self.assertFalse(user.api.read_users.called)
        self.assertFalse(user.api.create_user_key.called)
Example #6
0
    def test_setup_no_args_provided(self, _get_user_config, _is_key_valid,
                                    _set_user_config, *args):
        user = UserController(Mock(), Settings())
        user.api.read_users.return_value = [{'username': '******'}]
        args = Mock(email=None, ssh_key_path=None, ssh_auth='yes')

        _get_user_config.return_value = {}
        _is_key_valid.return_value = True

        user.setup(args)

        self.assertTrue(user.api.read_users.called)
        self.assertTrue(user.api.create_user_key.called)
        self.assertEqual(1, len(_set_user_config.mock_calls))
        _set_user_config.assert_called_once_with(
            user.settings, ssh_auth=True, ssh_path='/default/path/to/key')
Example #7
0
    def test_setup_only_email_provided(self, _get_user_config, _is_key_valid,
                                       _set_user_config, *args):
        user = UserController(Mock(), Settings())
        user.api.read_users.return_value = [{'username': '******'}]
        args = Mock(email='*****@*****.**', ssh_key_path=None, ssh_auth=None)

        _get_user_config.return_value = {
            'ssh_auth': True,
            'ssh_path': '/path/to/key'
        }
        _is_key_valid.return_value = True

        user.setup(args)

        self.assertTrue(user.api.read_users.called)
        self.assertTrue(user.api.create_user_key.called)
        self.assertEqual(2, len(_set_user_config.mock_calls))
        self.assertEqual(call(user.settings, email='*****@*****.**'),
                         _set_user_config.mock_calls[0])
        self.assertEqual(
            call(user.settings, ssh_auth=True, ssh_path='/path/to/key'),
            _set_user_config.mock_calls[1])
Example #8
0
 def test_ssh_forwarder_url_set_by_argument(self):
     test_env = {'SSH_FORWARDER': "any.env_api.url"}
     settings = Settings(ssh_forwarder_url='my.ssh_forwarder.url',
                         env=test_env)
     self.assertEqual('my.ssh_forwarder.url', settings.ssh_forwarder)
Example #9
0
 def test_api_url_default(self):
     settings = Settings(env={})
     self.assertEqual('https://api.cloudcontrolled.com', settings.api_url)
Example #10
0
 def test_check_for_updates_set_by_argument(self):
     settings = Settings(api_url='any.api.url', check_for_updates=False)
     self.assertFalse(settings.check_for_updates)
Example #11
0
 def test_check_for_updates_default(self):
     settings = Settings(env={})
     self.assertTrue(settings.check_for_updates)
Example #12
0
 def test_api_url_set_by_environment(self):
     test_env = {'CCTRL_API_URL': "my.env_api.url"}
     settings = Settings(env=test_env)
     self.assertEqual('my.env_api.url', settings.api_url)
Example #13
0
 def test_ssh_forwarder_url_default(self):
     settings = Settings(env={})
     self.assertEqual('sshforwarder.cloudcontrolled.com',
                      settings.ssh_forwarder)
Example #14
0
 def test_config_path_given_home_path(self):
     settings = Settings(home_path='.cloudControl')
     self.assertTrue(
         settings.config_path.endswith('.cloudControl/user.cfg'))
Example #15
0
 def test_token_path_given_home_path(self):
     settings = Settings(home_path='.cloudControl')
     self.assertTrue(
         settings.token_path.endswith('.cloudControl/token.json'))
Example #16
0
 def test_token_source_url_should_default_to_api_url(self):
     settings = Settings(api_url='my.api.url')
     self.assertEqual('my.api.url/token/', settings.token_source_url)
Example #17
0
 def test_token_source_url_set_by_constructor(self):
     settings = Settings(token_source_url='my.token_source.url',
                         api_url='any.api.url')
     self.assertEqual('my.token_source.url', settings.token_source_url)
Example #18
0
 def test_ssh_forwarder_set_by_environment(self):
     test_env = {'SSH_FORWARDER': "my.ssh_forwarder.url"}
     settings = Settings(env=test_env)
     self.assertEqual('my.ssh_forwarder.url', settings.ssh_forwarder)
Example #19
0
 def test_api_url_set_by_argument(self):
     test_env = {'CCTRL_API_URL': "any.env_api.url"}
     settings = Settings(api_url='my.api.url', env=test_env)
     self.assertEqual('my.api.url', settings.api_url)