Test default_serial_consistency_level PR #510
This commit is contained in:
@@ -9,6 +9,7 @@ Features
|
|||||||
* Eventlet Reactor IO improvement (PYTHON-495)
|
* Eventlet Reactor IO improvement (PYTHON-495)
|
||||||
* Make pure Python ProtocolHandler available even when Cython is present (PYTHON-501)
|
* Make pure Python ProtocolHandler available even when Cython is present (PYTHON-501)
|
||||||
* Optional Cython deserializer for bytes as bytearray (PYTHON-503)
|
* Optional Cython deserializer for bytes as bytearray (PYTHON-503)
|
||||||
|
* Add Session.default_serial_consistency_level (github #510)
|
||||||
* cqlengine: Expose prior state information via cqlengine LWTException (github #343, PYTHON-336)
|
* cqlengine: Expose prior state information via cqlengine LWTException (github #343, PYTHON-336)
|
||||||
* cqlengine: Collection datatype "contains" operators support (Cassandra 2.1) #278 (PYTHON-258)
|
* cqlengine: Collection datatype "contains" operators support (Cassandra 2.1) #278 (PYTHON-258)
|
||||||
* cqlengine: Add DISTINCT query operator (PYTHON-266)
|
* cqlengine: Add DISTINCT query operator (PYTHON-266)
|
||||||
|
|||||||
@@ -17,9 +17,11 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
import unittest # noqa
|
import unittest # noqa
|
||||||
|
|
||||||
from mock import patch
|
from mock import patch, Mock
|
||||||
|
|
||||||
from cassandra.cluster import _Scheduler
|
from cassandra import ConsistencyLevel
|
||||||
|
from cassandra.cluster import _Scheduler, Session
|
||||||
|
from cassandra.query import SimpleStatement
|
||||||
|
|
||||||
|
|
||||||
class SchedulerTest(unittest.TestCase):
|
class SchedulerTest(unittest.TestCase):
|
||||||
@@ -36,3 +38,34 @@ class SchedulerTest(unittest.TestCase):
|
|||||||
sched = _Scheduler(None)
|
sched = _Scheduler(None)
|
||||||
sched.schedule(0, lambda: None)
|
sched.schedule(0, lambda: None)
|
||||||
sched.schedule(0, lambda: None) # pre-473: "TypeError: unorderable types: function() < function()"t
|
sched.schedule(0, lambda: None) # pre-473: "TypeError: unorderable types: function() < function()"t
|
||||||
|
|
||||||
|
|
||||||
|
class SessionTest(unittest.TestCase):
|
||||||
|
# TODO: this suite could be expanded; for now just adding a test covering a PR
|
||||||
|
|
||||||
|
@patch('cassandra.cluster.ResponseFuture._make_query_plan')
|
||||||
|
def test_default_serial_consistency_level(self, *args):
|
||||||
|
"""
|
||||||
|
Make sure default_serial_consistency_level passes through to a query message.
|
||||||
|
Also make sure Statement.serial_consistency_level overrides the default.
|
||||||
|
|
||||||
|
PR #510
|
||||||
|
"""
|
||||||
|
s = Session(Mock(protocol_version=4), [])
|
||||||
|
|
||||||
|
# default is None
|
||||||
|
self.assertIsNone(s.default_serial_consistency_level)
|
||||||
|
|
||||||
|
sentinel = 1001
|
||||||
|
for cl in (None, ConsistencyLevel.LOCAL_SERIAL, ConsistencyLevel.SERIAL, sentinel):
|
||||||
|
s.default_serial_consistency_level = cl
|
||||||
|
|
||||||
|
# default is passed through
|
||||||
|
f = s._create_response_future(query='', parameters=[], trace=False, custom_payload={}, timeout=100)
|
||||||
|
self.assertEqual(f.message.serial_consistency_level, cl)
|
||||||
|
|
||||||
|
# any non-None statement setting takes precedence
|
||||||
|
for cl_override in (ConsistencyLevel.LOCAL_SERIAL, ConsistencyLevel.SERIAL):
|
||||||
|
f = s._create_response_future(SimpleStatement(query_string='', serial_consistency_level=cl_override), parameters=[], trace=False, custom_payload={}, timeout=100)
|
||||||
|
self.assertEqual(s.default_serial_consistency_level, cl)
|
||||||
|
self.assertEqual(f.message.serial_consistency_level, cl_override)
|
||||||
|
|||||||
Reference in New Issue
Block a user