示例#1
0
    def test_process(self):

        logging.info('*** process ***')

        listener = Listener(engine=self.engine)
        listener.DEFER_DURATION = 0.0

        self.engine.set('listener.counter', 22)
        with self.assertRaises(AssertionError):
            listener.process('hello world')
        self.assertEqual(self.engine.get('listener.counter'), 23)

        listener.on_message = mock.Mock()
        listener.process(str(my_message))
        self.assertEqual(self.engine.get('listener.counter'), 24)
        self.assertTrue(listener.on_message.called)

        listener.on_message = mock.Mock()
        listener.process(str(my_private_message))
        self.assertEqual(self.engine.get('listener.counter'), 25)
        self.assertTrue(listener.on_message.called)

        listener.on_join = mock.Mock()
        listener.process(str(my_join))
        self.assertEqual(self.engine.get('listener.counter'), 26)
        self.assertTrue(listener.on_join.called)

        listener.on_leave = mock.Mock()
        listener.process(str(my_leave))
        self.assertEqual(self.engine.get('listener.counter'), 27)
        self.assertTrue(listener.on_leave.called)

        listener.on_inbound = mock.Mock()
        listener.process(str(my_event))
        self.assertEqual(self.engine.get('listener.counter'), 28)
        self.assertTrue(listener.on_inbound.called)
示例#2
0
    def test_on_leave(self):

        logging.info('*** on_leave ***')

        class Handler(object):
            def __init__(self):
                self.out = False
                self.left = False

            def on_exit(self, **kwargs):
                self.out = True

            def on_leave(self, **kwargs):
                self.left = True

        handler = Handler()
        self.engine.register('exit', handler)
        self.engine.register('leave', handler)

        listener = Listener(engine=self.engine)
        listener.DEFER_DURATION = 0.0
        with self.assertRaises(AssertionError):
            listener.on_leave(my_message)
        with self.assertRaises(AssertionError):
            listener.on_leave(my_private_message)
        with self.assertRaises(AssertionError):
            listener.on_leave(my_join)

        self.assertFalse(handler.out)
        self.assertFalse(handler.left)

        listener.on_leave(my_exit)

        self.assertTrue(handler.out)
        self.assertFalse(handler.left)

        listener.on_leave(my_leave)

        self.assertTrue(handler.out)
        self.assertTrue(handler.left)

        with self.assertRaises(AssertionError):
            listener.on_leave(my_event)

        with mock.patch.object(self.engine, 'dispatch',
                               return_value=None) as mocked:
            listener.on_leave(my_leave)
            self.assertTrue(mocked.called)