Example #1
0
    def test_listen_base_filter(self):
        ''' Test the basic listening filter
        The ``listen`` filter should match exact strings by default.
        '''
        self.bot.listen("test trigger")(self.trigger)
        base_message = {"type": "message"}

        with self.assertDoesNotTrigger():
            self.bot.recv_event(merge(base_message, text="no trigger"))

        with self.assertTriggers():
            self.bot.recv_event(merge(base_message, text="test trigger"))
Example #2
0
    def test_listen_channel(self):
        ''' Test the channel scoping on a listen filter
        The ``listen`` filter should not trigger listeners if the source
        channel is out of scope.
        '''
        self.bot.listen("test", channel="#test")(self.trigger)
        base_message = {"type": "message", "text": "test"}

        with self.assertDoesNotTrigger():
            self.bot.recv_event(merge(base_message, channel="bad"))

        with self.assertTriggers():
            self.bot.recv_event(merge(base_message, channel="1234"))
Example #3
0
    def test_listen_regex(self):
        ''' Test the regex listening filter
        The ``listen`` filter can take complex regex strings and match against
        those.
        '''
        self.bot.listen("<[int]:nums>", regex=True)(self.trigger)
        base_message = {"type": "message"}

        with self.assertDoesNotTrigger():
            self.bot.recv_event(merge(base_message, text="asdf"))

        with self.assertTriggers():
            self.bot.recv_event(merge(base_message, text="123 456"))
            self.assertEquals(self.triggered_values["nums"], [123, 456])
Example #4
0
File: db.py Project: jdost/lazbot
    def setup(self, config=None):
        import os
        from lazbot.utils import merge
        from lazbot import logger

        if config:
            self.config = merge(self.config, **config)

        if not os.path.exists(self.config["dir"]):
            os.mkdir(self.config["dir"])
            logger.info("Creating data directory: %s", self.config["dir"])
Example #5
0
 def setUp(self):
     TestBase.setUp(self)
     self.bot.login_data = merge(self.bot.login_data, users=TEST_USERS)
     self.ext = reload(ext)
Example #6
0
from app import bot, config
from lazbot import db
from lazbot import utils
from lazbot import logger
from collections import Counter
from lazbot.models import Message
import parsedatetime
from datetime import datetime, timedelta


DT_FORMAT = "%Y-%m-%d %H:%M:%S"
EMOJI = utils.merge({
    "yes": "+1",
    "no": "-1",
    "neutral": "thumbsright"
}, config.get("emoji", {}))
polls = []


@bot.setup
def load():
    global polls
    polls = [Poll.from_json(json) for json in db.get("polls", [])]
    logger.info("Loaded %s polls", len(polls))
    logger.info("Loaded %s active polls",
                len([True for p in polls if p.state != Poll.CLOSED]))


@bot.teardown(priority=True)
def save():
    db["polls"] = [poll.__json__() for poll in polls