yaboli/test.py
2019-04-11 21:33:17 +00:00

61 lines
1.7 KiB
Python

# These tests are not intended as serious tests, just as small scenarios to
# give yaboli something to do.
import asyncio
import logging
import yaboli
FORMAT = "{asctime} [{levelname:<7}] <{name}> {funcName}(): {message}"
LEVEL = logging.DEBUG
#FORMAT = "{asctime} [{levelname:<7}] <{name}>: {message}"
#LEVEL = logging.INFO
DATE_FORMAT = "%F %T"
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter(
fmt=FORMAT,
datefmt=DATE_FORMAT,
style="{"
))
logger = logging.getLogger('yaboli')
logger.setLevel(LEVEL)
logger.addHandler(handler)
class TestBot(yaboli.Bot):
DEFAULT_NICK = "testbot"
def __init__(self):
super().__init__()
self.register_botrulez()
self.register_general("test", self.cmd_test, args=False)
self.register_general("who", self.cmd_who, args=False)
self.register_general("err", self.cmd_err, args=False)
async def started(self):
await self.join("test")
async def on_send(self, room, message):
await self.process_commands(room, message,
aliases=["testalias", "aliastest"])
async def cmd_test(self, room, message, args):
await message.reply(f"You said {message.content!r}.")
msg1 = await room.send(f"{message.sender.atmention} said something.")
await msg1.reply("Yes, they really did.")
async def cmd_who(self, room, message, args):
lines = []
for user in await room.who():
lines.append(repr(user.nick))
await message.reply("\n".join(lines))
async def cmd_err(self, room, message, args):
await message.reply(str(1/0))
async def main():
tc = TestBot()
await tc.run()
asyncio.run(main())