Test default_serial_consistency_level PR #510
This commit is contained in:
@@ -9,6 +9,7 @@ Features
|
||||
* Eventlet Reactor IO improvement (PYTHON-495)
|
||||
* Make pure Python ProtocolHandler available even when Cython is present (PYTHON-501)
|
||||
* 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: Collection datatype "contains" operators support (Cassandra 2.1) #278 (PYTHON-258)
|
||||
* cqlengine: Add DISTINCT query operator (PYTHON-266)
|
||||
|
||||
@@ -17,9 +17,11 @@ try:
|
||||
except ImportError:
|
||||
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):
|
||||
@@ -36,3 +38,34 @@ class SchedulerTest(unittest.TestCase):
|
||||
sched = _Scheduler(None)
|
||||
sched.schedule(0, lambda: None)
|
||||
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