Example #1
0
def test_join_and_leave_by_index(good_games, authors):
    queue_api = DiscordBotApi()
    queue_api.nuke()
    assert len(queue_api.queue_list) == 0
    for index, game in enumerate(good_games):
        assert len(queue_api.queue_list) == index
        start_msg = start_message(game)
        queue_api.start(start_msg, authors[0])

    game_names = queue_api.queue_list.games()
    for i, game in enumerate(game_names):
        join_msg = join_message(i + 1)
        for index, author in enumerate(authors[1:]):
            assert len(queue_api.queue_list[game]) == 1 + index
            queue_api.join(join_msg, author)

    game_names = queue_api.queue_list.games()
    for i, g in enumerate(game_names):
        assert i == queue_api.queue_list.index(g)

    for i, game in enumerate(game_names):
        leave_msg = leave_message(1)
        assert len(queue_api.queue_list) == len(game_names) - i
        for index, author in enumerate(authors):
            assert len(queue_api.queue_list[game]) == len(authors) - index
            queue_api.leave(leave_msg, author)

    assert len(queue_api.queue_list) == 0
Example #2
0
def test_kick(good_games, authors):
    queue_api = DiscordBotApi()
    queue_api.nuke()
    assert len(queue_api.queue_list) == 0
    game = good_games[0]
    start_msg = start_message(game)
    queue_api.start(start_msg, authors[0])
    for author in authors[1:]:
        join_msg = join_message(game)
        queue_api.join(join_msg, author)

    for index in range(len(authors)):
        assert len(queue_api.queue_list[0]) == len(authors) - index
        queue_api.kick('!sqkick 1 1')

    assert len(queue_api.queue_list) == 0
Example #3
0
def test_nuke(good_games, authors):
    queue_api = DiscordBotApi()
    queue_api.nuke()
    assert len(queue_api.queue_list) == 0
    for index, game in enumerate(good_games):
        assert len(queue_api.queue_list) == index
        start_msg = start_message(game)
        queue_api.start(start_msg, authors[0])

    for i, game in enumerate(queue_api.queue_list):
        join_msg = join_message(i + 1)
        for index, author in enumerate(authors[1:]):
            assert len(queue_api.queue_list[game]) == 1 + index
            queue_api.join(join_msg, author)

    queue_api.nuke()
    assert len(queue_api.queue_list) == 0
Example #4
0
def test_pop(good_games, authors):
    queue_api = DiscordBotApi()
    queue_api.nuke()
    assert len(queue_api.queue_list) == 0
    author = authors[0]
    start_msg = start_message(good_games[0])
    queue_api.start(start_msg, author)
    assert len(queue_api.queue_list) == 1
    assert len(queue_api.queue_list[0]) == 1
    queue_api.pop(pop_message(1, good_games[0]))
    assert len(queue_api.queue_list) == 0
Example #5
0
def test_join_and_leave_by_name(good_games, authors):
    queue_api = DiscordBotApi()
    queue_api.nuke()
    assert len(queue_api.queue_list) == 0
    for index, game in enumerate(good_games):
        assert len(queue_api.queue_list) == index
        start_msg = start_message(game)
        queue_api.start(start_msg, authors[0])

    for game in good_games:
        join_msg = join_message(game)
        for index, author in enumerate(authors[1:]):
            assert len(queue_api.queue_list[game]) == 1 + index
            queue_api.join(join_msg, author)
            assert queue_api.queue_list[game][index + 1] == author.name

    for game in good_games:
        leave_msg = leave_message(game)
        for index, author in enumerate(authors):
            assert len(queue_api.queue_list[game]) == len(authors) - index
            queue_api.leave(leave_msg, author)

    assert len(queue_api.queue_list) == 0
Example #6
0
import os

import discord
import functools

from discord.ext import commands
from dotenv import load_dotenv
from queue_bot.utils import SmusError
from queue_bot.api import DiscordBotApi

load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')

client = commands.Bot(command_prefix='!sq')

api = DiscordBotApi()


def trying(func):
    @functools.wraps(func)
    async def wrapper_function(ctx):
        try:
            response = await func(ctx)
        except SmusError as E:
            response = E.user_message

        await ctx.send(response)

    return wrapper_function