5428c5f296
Generated by com2ann (slightly patched to avoid also converting assignment type annotations, which require Python 3.6), followed by some manual whitespace adjustment, and two fixes for use-before-define issues: - def set_zulip_client(self, zulipToJabberClient: ZulipToJabberBot) -> None: + def set_zulip_client(self, zulipToJabberClient: 'ZulipToJabberBot') -> None: -def init_from_options(options: Any, client: Optional[str] = None) -> Client: +def init_from_options(options: Any, client: Optional[str] = None) -> 'Client': Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
import json
|
|
import os
|
|
|
|
from importlib import import_module
|
|
|
|
from typing import Any, Dict
|
|
|
|
'''
|
|
This module helps us find files in the bots directory. Our
|
|
directory structure is currently:
|
|
|
|
zulip_bots/zulip_bots/bots/
|
|
<bot name>/
|
|
<bot name>.py
|
|
fixtures/
|
|
'''
|
|
|
|
def get_bot_message_handler(bot_name: str) -> Any:
|
|
# message_handler is of type 'Any', since it can contain any bot's
|
|
# handler class. Eventually, we want bot's handler classes to
|
|
# inherit from a common prototype specifying the handle_message
|
|
# function.
|
|
lib_module = import_module('zulip_bots.bots.{bot}.{bot}'.format(bot=bot_name)) # type: Any
|
|
return lib_module.handler_class()
|
|
|
|
def read_bot_fixture_data(bot_name: str, test_name: str) -> Dict[str, Any]:
|
|
base_path = os.path.realpath(os.path.join(os.path.dirname(
|
|
os.path.abspath(__file__)), 'bots', bot_name, 'fixtures'))
|
|
http_data_path = os.path.join(base_path, '{}.json'.format(test_name))
|
|
with open(http_data_path, encoding='utf-8') as f:
|
|
content = f.read()
|
|
http_data = json.loads(content)
|
|
return http_data
|