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()
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')
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)
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")
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')
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))
def test_usage(): responder = mock.Mock() control.handle('usage', responder) responder.assert_any_call('Usage: usage')
def test_unknown(): responder = mock.Mock() control.handle('hnnnng', responder) check_showed_usage(responder)
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')
def command(cmd): responses = [] control.handle(cmd, responses.append) return "\n".join(responses)
def lineReceived(self, line): print "Got line: {0}".format(line) control.handle(line, self.sendLine)