예제 #1
0
def test_halt():
    exit_handler = mock.Mock()
    responder = mock.Mock()
    with mock.patch('twisted.internet.reactor.stop', exit_handler):
        control.handle('halt', responder)
        responder.assert_called_once_with('System going down for halt')
        exit_handler.assert_called_once_with()
예제 #2
0
def test_command_schedule():
    responder = mock.Mock()
    create_event = mock.Mock(return_value = 'eyes')
    with mock.patch('schedule_db.schedule.create_event', create_event):
        control.handle('schedule lunch moo', responder)
        responder.assert_called_once_with("Sorry, I didn't understand that time")
        responder.reset_mock()
        control.handle('schedule lunch 12:00', responder)
        responder.assert_called_once_with("Scheduled as eyes")
        create_event.assert_called_once_with(12*3600, 'lunch')
예제 #3
0
 def privmsg(self, user, channel, msg):
     if channel != self.channel:
         return
     prefix = '!'
     if not msg.startswith(prefix):
         return
     content = msg[len(prefix):]
     sender = re.match('(.*)!(.*)@(.*)', user).group(1)
     def responder(response):
         self.say(channel, '{0}: {1}'.format(sender, response))
     control.handle(content, responder, short_fail = True)
예제 #4
0
async def handle(ws, path, writer):
    # print(dir(ws))
    logger.info("Connection from %r %r", ws, path)
    connections.add(ws)
    try:
        # async for message in ws:
        while True:
            message = await ws.recv()
            logger.debug("RECV %r" % message)
            if message is None:
                message = ''
            message = str(message).strip()
            if not test:
                import control
                control.handle(writer, message)
    except:
        logger.error("Connection error", exc_info=1)
    finally:
        connections.remove(ws)
    logger.info("Connection closed")
예제 #5
0
def test_command_show_schedule():
    responder = mock.Mock()
    df = defer.Deferred()
    events_between = mock.Mock(return_value = df)
    with mock.patch('schedule_db.schedule.events_between', events_between):
        control.handle('show-schedule moo 12:00', responder)
        responder.assert_called_once_with("Sorry, I didn't understand that time")
        responder.reset_mock()
        control.handle('show-schedule 9:00 13:00', responder)
        events_between.assert_called_once_with(9*3600, 13*3600)
        df.callback([('eyes', 10*3600)])
        responder.assert_called_once_with('10:00:00 - eyes')
        responder.reset_mock()
    df = defer.Deferred()
    events_between = mock.Mock(return_value = df)
    with mock.patch('schedule_db.schedule.events_between', events_between):
        control.handle('show-schedule 9:00 13:00', responder)
        events_between.assert_called_once_with(9*3600, 13*3600)
        df.callback([])
        responder.assert_called_once_with('No events in that time period')
def test_command_show_schedule():
    responder = mock.Mock()
    nine_am = stamp(9, 00)
    ten_am = stamp(10, 00)
    one_pm = stamp(13, 00)
    today_iso8601 = date.today().isoformat()
    events_between = mock.Mock(return_value = [('eyes', ten_am)])
    with mock.patch('schedule_commands.schedule.events_between', events_between):
        control.handle('show-schedule moo 12:00', responder)
        responder.assert_called_once_with("Sorry, I didn't understand that time")
        responder.reset_mock()
        control.handle('show-schedule 9:00 13:00', responder)
        events_between.assert_called_once_with(nine_am, one_pm)
        responder.assert_called_once_with(today_iso8601 + ' 10:00:00 - eyes')
        responder.reset_mock()

    events_between = mock.Mock(return_value = [])
    with mock.patch('schedule_commands.schedule.events_between', events_between):
        control.handle('show-schedule 9:00 13:00', responder)
        events_between.assert_called_once_with(nine_am, one_pm)
        responder.assert_called_once_with('No events in that time period')
예제 #7
0
def test_unknown():
    responder = mock.Mock()
    cmd = 'hnnnng'
    control.handle(cmd, responder)
    responder.assert_called_with("Command '{0}' not recognised. Check 'usage' for accepted commands.".format(cmd))
예제 #8
0
def test_usage():
    responder = mock.Mock()
    control.handle('usage', responder)
    responder.assert_any_call('Usage: usage')
예제 #9
0
def test_unknown():
    responder = mock.Mock()
    control.handle('hnnnng', responder)
    check_showed_usage(responder)
예제 #10
0
def test_usage():
    responder = mock.Mock()
    control.handle('usage', responder)
    check_showed_usage(responder)
def test_command_unschedule():
    mock_cancel = mock.Mock()
    with mock.patch('schedule_commands.schedule.cancel_event', mock_cancel):
        control.handle('unschedule eyes')
    mock_cancel.assert_called_once_with('eyes')
예제 #12
0
def command(cmd):
    responses = []
    control.handle(cmd, responses.append)
    return "\n".join(responses)
예제 #13
0
 def lineReceived(self, line):
     print "Got line: {0}".format(line)
     control.handle(line, self.sendLine)