python-zulip-api/zulip_bots/zulip_bots/test_file_utils.py
PIG208 9ce7c52a10 pyupgrade: Reformat with --py36-plus.
This includes mainly fixes of string literals using f-strings or
.format(...), as well as unpacking of list comprehensions.
2021-06-02 18:45:57 -07:00

35 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, f"{test_name}.json")
with open(http_data_path, encoding="utf-8") as f:
content = f.read()
http_data = json.loads(content)
return http_data