Beispiel #1
0
    def test_acquire_new_session(self):
        manager = object()
        messages = []

        session = self.make_session(result=messages)
        self.assertEqual(session.state, protocol.STATE_NEW)

        self.loop.run_until_complete(session._acquire(manager))
        self.assertEqual(session.state, protocol.STATE_OPEN)
        self.assertIs(session.manager, manager)
        self.assertTrue(session._heartbeat_transport)
        self.assertEqual(
            list(session._queue),
            [(protocol.FRAME_OPEN, protocol.FRAME_OPEN)])
        self.assertEqual(messages, [(protocol.OpenMessage, session)])
Beispiel #2
0
    def test_acquire_exception_in_handler(self):

        @asyncio.coroutine
        def handler(msg, s):
            raise ValueError

        session = self.make_session(handler=handler)
        self.assertEqual(session.state, protocol.STATE_NEW)

        self.loop.run_until_complete(session._acquire(object()))
        self.assertEqual(session.state, protocol.STATE_CLOSING)
        self.assertTrue(session._heartbeat_transport)
        self.assertTrue(session.interrupted)
        self.assertEqual(
            list(session._queue),
            [(protocol.FRAME_OPEN, protocol.FRAME_OPEN),
             (protocol.FRAME_CLOSE, (3000, 'Internal error'))])