コード例 #1
0
    def test_missing_req_args(self):
        """
        Verify required arguments are caught when missing.
        """
        failing_cases = ([''],
                         ['', '--etcd-uri', 'http://127.0.0.1:2379'],
                         ['', '--kube-uri', 'http://127.0.0.1:8080'])
        for argv in failing_cases:
            sys.argv = argv
            parser = argparse.ArgumentParser()
            with mock.patch('__builtin__.open') as _open, \
                 mock.patch('argparse.ArgumentParser._print_message') as _print:
                # Make sure no config file is opened.
                _open.side_effect = IOError(
                    errno.ENOENT, os.strerror(errno.ENOENT))
                self.assertRaises(SystemExit, script.parse_args, parser)

        # All required arguments; no exception raised.
        sys.argv = ['', '--etcd-uri', 'http://127.0.0.1:2379',
                        '--kube-uri', 'http://127.0.0.1:8080']
        parser = argparse.ArgumentParser()
        with mock.patch('__builtin__.open') as _open:
            # Make sure no config file is opened.
            _open.side_effect = IOError(
                errno.ENOENT, os.strerror(errno.ENOENT))
            args = script.parse_args(parser)
コード例 #2
0
 def test_arg_priority(self):
     """
     Verify command-line arguments shadow config file.
     """
     sys.argv = ['', '--listen-interface', '10.10.10.10']
     parser = argparse.ArgumentParser()
     with mock.patch('__builtin__.open',
                     mock.mock_open(read_data=self.config_data)) as _open:
         args = script.parse_args(parser)
     self.assertEquals(args.listen_interface, '10.10.10.10')
     self.assertEquals(args.listen_port, 8888)
コード例 #3
0
 def test_arg_priority(self):
     """
     Verify command-line arguments shadow config file.
     """
     sys.argv = ['', '--etcd-uri', 'http://127.0.0.1:2379']
     parser = argparse.ArgumentParser()
     with mock.patch('__builtin__.open',
                     mock.mock_open(read_data=self.config_data)) as _open:
         args = script.parse_args(parser)
     self.assertEquals(args.etcd_uri, 'http://127.0.0.1:2379')
     self.assertEquals(args.kube_uri, 'http://192.168.100.1:8080')
コード例 #4
0
    def test_auth_plugin_config(self):
        """
        Verify parsing of inline authentication-plugin config.
        """
        sys.argv = ['']
        parser = argparse.ArgumentParser()
        with mock.patch('__builtin__.open',
                        mock.mock_open(read_data=self.auth_plugin_no_name)
                ) as _open:
            self.assertRaises(ValueError, script.parse_args, parser)

        parser = argparse.ArgumentParser()
        with mock.patch('__builtin__.open',
                        mock.mock_open(read_data=self.auth_plugin)
                ) as _open:
            args = script.parse_args(parser)
        self.assertTrue(hasattr(args, 'authentication_plugin'))
        self.assertTrue(hasattr(args, 'authentication_plugin_kwargs'))
        self.assertEquals(args.authentication_plugin, 'test_module')
        self.assertEquals(
            args.authentication_plugin_kwargs,
            {'kwarg': [1, 2, 3, 4]})
コード例 #5
0
    def test_auth_plugin_config(self):
        """
        Verify parsing of inline authentication-plugin config.
        """
        sys.argv = ['']
        parser = argparse.ArgumentParser()
        with mock.patch('__builtin__.open',
                        mock.mock_open(read_data=self.auth_plugin_no_name)
                ) as _open:
            self.assertRaises(ValueError, script.parse_args, parser)

        parser = argparse.ArgumentParser()
        with mock.patch('__builtin__.open',
                        mock.mock_open(read_data=self.auth_plugin)
                ) as _open:
            args = script.parse_args(parser)
        self.assertTrue(hasattr(args, 'authentication_plugin'))
        self.assertTrue(hasattr(args, 'authentication_plugin_kwargs'))
        self.assertEquals(args.authentication_plugin, 'test_module')
        self.assertEquals(
            args.authentication_plugin_kwargs,
            {'kwarg': [1, 2, 3, 4]})