def test_triggers_close_callback_when_closed(self):
        def on_closed():
            self.stop()

        def on_connect():
            server.stop()

        with serve(60000) as server:
            stream = CocaineStream(socket.socket(), self.io_loop)
            stream.connect(('127.0.0.1', 60000), on_connect)
            stream.set_close_callback(on_closed)
            self.wait()
    def test_triggers_on_message_callback_with_message(self):
        def on_message(message):
            self.assertEqual([4, 1, ['name']], message)
            self.stop()

        def on_connect():
            server.connections[stream.address()].write(msgpack.dumps([4, 1, ['name']]))

        with serve(60000) as server:
            stream = CocaineStream(socket.socket(), self.io_loop)
            stream.connect(('127.0.0.1', 60000))
            server.on_connect(on_connect)
            stream.set_read_callback(on_message)
            self.wait()
 def test_can_connect(self):
     with serve(60000):
         stream = CocaineStream(socket.socket(), self.io_loop)
         stream.connect(('127.0.0.1', 60000))
         self.assertFalse(stream.closed())
         self.assertTrue(stream.connecting())
         self.assertFalse(stream.connected())