zulip_botserver: Get rid of last global variable.

This commit is contained in:
dkvasov 2018-05-16 20:35:14 +03:00 committed by Tim Abbott
parent a5d6286d85
commit 86ab26d2ba
2 changed files with 9 additions and 11 deletions

View file

@ -23,12 +23,11 @@ class BotServerTestCase(TestCase):
third_party_bot_conf: Optional[configparser.ConfigParser]=None, third_party_bot_conf: Optional[configparser.ConfigParser]=None,
) -> None: ) -> None:
if available_bots is not None and bots_config is not None: if available_bots is not None and bots_config is not None:
server.available_bots = available_bots bots_lib_modules = server.load_lib_modules(available_bots)
bots_lib_modules = server.load_lib_modules()
server.app.config["BOTS_LIB_MODULES"] = bots_lib_modules server.app.config["BOTS_LIB_MODULES"] = bots_lib_modules
if bot_handlers is None: if bot_handlers is None:
bot_handlers = server.load_bot_handlers(bots_config, third_party_bot_conf) bot_handlers = server.load_bot_handlers(available_bots, bots_config, third_party_bot_conf)
message_handlers = server.init_message_handlers(bots_lib_modules, bot_handlers) message_handlers = server.init_message_handlers(available_bots, bots_lib_modules, bot_handlers)
server.app.config["BOT_HANDLERS"] = bot_handlers server.app.config["BOT_HANDLERS"] = bot_handlers
server.app.config["MESSAGE_HANDLERS"] = message_handlers server.app.config["MESSAGE_HANDLERS"] = message_handlers

View file

@ -12,8 +12,6 @@ from zulip import Client
from zulip_bots.lib import ExternalBotHandler from zulip_bots.lib import ExternalBotHandler
from zulip_botserver.input_parameters import parse_args from zulip_botserver.input_parameters import parse_args
available_bots = [] # type: List[str]
def read_config_file(config_file_path: str, bot_name: Optional[str]=None) -> Dict[str, Dict[str, str]]: def read_config_file(config_file_path: str, bot_name: Optional[str]=None) -> Dict[str, Dict[str, str]]:
parser = parse_config_file(config_file_path) parser = parse_config_file(config_file_path)
@ -48,7 +46,7 @@ def parse_config_file(config_file_path: str) -> configparser.ConfigParser:
return parser return parser
def load_lib_modules() -> Dict[str, Any]: def load_lib_modules(available_bots: List[str]) -> Dict[str, Any]:
bots_lib_module = {} bots_lib_module = {}
for bot in available_bots: for bot in available_bots:
try: try:
@ -64,6 +62,7 @@ def load_lib_modules() -> Dict[str, Any]:
def load_bot_handlers( def load_bot_handlers(
available_bots: List[str],
bots_config: Dict[str, Dict[str, str]], bots_config: Dict[str, Dict[str, str]],
third_party_bot_conf: Optional[configparser.ConfigParser]=None, third_party_bot_conf: Optional[configparser.ConfigParser]=None,
) -> Dict[str, ExternalBotHandler]: ) -> Dict[str, ExternalBotHandler]:
@ -85,6 +84,7 @@ def load_bot_handlers(
def init_message_handlers( def init_message_handlers(
available_bots: List[str],
bots_lib_modules: Dict[str, Any], bots_lib_modules: Dict[str, Any],
bot_handlers: Dict[str, ExternalBotHandler], bot_handlers: Dict[str, ExternalBotHandler],
) -> Dict[str, Any]: ) -> Dict[str, Any]:
@ -124,12 +124,11 @@ def handle_bot(bot: str) -> Union[str, BadRequest]:
def main() -> None: def main() -> None:
options = parse_args() options = parse_args()
bots_config = read_config_file(options.config_file, options.bot_name) bots_config = read_config_file(options.config_file, options.bot_name)
global available_bots
available_bots = list(bots_config.keys()) available_bots = list(bots_config.keys())
bots_lib_modules = load_lib_modules() bots_lib_modules = load_lib_modules(available_bots)
third_party_bot_conf = parse_config_file(options.bot_config_file) if options.bot_config_file is not None else None third_party_bot_conf = parse_config_file(options.bot_config_file) if options.bot_config_file is not None else None
bot_handlers = load_bot_handlers(bots_config, third_party_bot_conf) bot_handlers = load_bot_handlers(available_bots, bots_config, third_party_bot_conf)
message_handlers = init_message_handlers(bots_lib_modules, bot_handlers) message_handlers = init_message_handlers(available_bots, bots_lib_modules, bot_handlers)
app.config["BOTS_LIB_MODULES"] = bots_lib_modules app.config["BOTS_LIB_MODULES"] = bots_lib_modules
app.config["BOT_HANDLERS"] = bot_handlers app.config["BOT_HANDLERS"] = bot_handlers
app.config["MESSAGE_HANDLERS"] = message_handlers app.config["MESSAGE_HANDLERS"] = message_handlers