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)
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)
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')
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]})