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)])
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'))])