From 9d683e4669dac7c0d3ba105f91fa04521710b021 Mon Sep 17 00:00:00 2001 From: derAnfaenger Date: Mon, 28 Aug 2017 16:01:05 +0200 Subject: [PATCH] api: Ensure automatic tilde expansion. --- zulip/zulip/__init__.py | 5 ++++- zulip_botserver/zulip_botserver/server.py | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/zulip/zulip/__init__.py b/zulip/zulip/__init__.py index 9359ae8..625748b 100644 --- a/zulip/zulip/__init__.py +++ b/zulip/zulip/__init__.py @@ -254,6 +254,9 @@ class Client(object): if client is None: client = _default_client() + # Normalize user-specified path + if config_file is not None: + config_file = os.path.abspath(os.path.expanduser(config_file)) # Fill values from Environment Variables if not available in Constructor if config_file is None: config_file = os.environ.get("ZULIP_CONFIG") @@ -301,7 +304,7 @@ class Client(object): raise RuntimeError("insecure is set to '%s', it must be 'true' or 'false' if it is used in %s" % (insecure_setting, config_file)) elif None in (api_key, email): - raise RuntimeError("api_key or email not specified and %s does not exist" + raise RuntimeError("api_key or email not specified and file %s does not exist" % (config_file,)) self.api_key = api_key diff --git a/zulip_botserver/zulip_botserver/server.py b/zulip_botserver/zulip_botserver/server.py index e50fd79..5fe6125 100644 --- a/zulip_botserver/zulip_botserver/server.py +++ b/zulip_botserver/zulip_botserver/server.py @@ -20,6 +20,9 @@ bots_lib_module = {} # type: Dict[str, Any] def read_config_file(config_file_path): # type: (str) -> None + config_file_path = os.path.abspath(os.path.expanduser(config_file_path)) + if not os.path.isfile(config_file_path): + raise IOError("Could not read config file {}: File not found.".format(config_file_path)) parser = SafeConfigParser() parser.read(config_file_path) @@ -55,7 +58,8 @@ def handle_bot(bot): lib_module = get_bot_lib_module(bot) if lib_module is None: return BadRequest("Can't find the configuration or Bot Handler code for bot {}. " - "Make sure that the `zulip_bots` package is installed!".format(bot)) + "Make sure that the `zulip_bots` package is installed, and " + "that your flaskbotrc is set up correctly".format(bot)) client = Client(email=bots_config[bot]["email"], api_key=bots_config[bot]["key"],