Merge branch 'master' into libev-direct

This commit is contained in:
Tyler Hobbs
2013-08-15 17:10:42 -05:00
3 changed files with 29 additions and 2 deletions

View File

@@ -39,6 +39,9 @@ The driver currently uses Python's ``asyncore`` module for its default
event loop. For better performance, ``libev`` is also supported through
a C extension.
Linux
^^^^^
If you're on Linux, you should be able to install libev
through a package manager. For example, on Debian/Ubuntu:
@@ -46,6 +49,25 @@ through a package manager. For example, on Debian/Ubuntu:
$ sudo apt-get install libev4 libev-dev
OS X
^^^^
If you're on Mac OS X, you should be able to install libev
through `Homebrew <http://brew.sh/>`_. For example, on Mac OS X:
.. code-block:: bash
$ brew install libev
and then install ``pyev`` as follows:
.. code-block:: bash
$ pip install pyev
Usage
^^^^^
If successful, you should be able to use the libev event loop by
doing the following

View File

@@ -9,7 +9,7 @@ from cassandra.marshal import int8_unpack
from cassandra.decoder import (ReadyMessage, AuthenticateMessage, OptionsMessage,
StartupMessage, ErrorMessage, CredentialsMessage,
QueryMessage, ResultMessage, decode_response,
InvalidRequestException)
InvalidRequestException, SupportedMessage)
log = logging.getLogger(__name__)
@@ -194,6 +194,11 @@ class Connection(object):
def _handle_options_response(self, options_response):
if self.is_defunct:
return
if not isinstance(options_response, SupportedMessage):
log.error("Did not get expected SupportedMessage response; instead, got: %s", options_response)
return
log.debug("Received options response on new Connection from %s" % self.host)
self.supported_cql_versions = options_response.cql_versions
self.remote_supported_compressions = options_response.options['COMPRESSION']

View File

@@ -90,8 +90,8 @@ class LibevConnectionTest(unittest.TestCase):
# make sure it errored correctly
self.assertTrue(c.is_defunct)
self.assertTrue(isinstance(c.last_error, ProtocolError))
self.assertTrue(c.connected_event.is_set())
self.assertTrue(isinstance(c.last_error, ProtocolError))
def test_error_message_on_startup(self, *args):
c = self.make_connection()