19
19
except ImportError :
20
20
import unittest # noqa
21
21
22
- from cassandra .cluster import Cluster , ResultSet
22
+ from cassandra .cluster import Cluster , ResultSet , ExecutionProfile , EXEC_PROFILE_DEFAULT
23
23
from cassandra .query import tuple_factory , named_tuple_factory , dict_factory , ordered_dict_factory
24
24
from cassandra .util import OrderedDict
25
25
@@ -31,8 +31,7 @@ def setup_module():
31
31
class NameTupleFactory (BasicSharedKeyspaceUnitTestCase ):
32
32
33
33
def setUp (self ):
34
- super (NameTupleFactory , self ).setUp ()
35
- self .session .row_factory = named_tuple_factory
34
+ self .common_setup (1 , execution_profiles = {EXEC_PROFILE_DEFAULT : ExecutionProfile (row_factory = named_tuple_factory )})
36
35
ddl = '''
37
36
CREATE TABLE {0}.{1} (
38
37
k int PRIMARY KEY,
@@ -78,38 +77,22 @@ class RowFactoryTests(BasicSharedKeyspaceUnitTestCaseWFunctionTable):
78
77
"""
79
78
Test different row_factories and access code
80
79
"""
81
- def setUp (self ):
82
- super (RowFactoryTests , self ).setUp ()
83
- self .insert1 = '''
84
- INSERT INTO {0}.{1}
85
- ( k , v )
86
- VALUES
87
- ( 1 , 1 )
88
- ''' .format (self .keyspace_name , self .function_table_name )
89
-
90
- self .insert2 = '''
91
- INSERT INTO {0}.{1}
92
- ( k , v )
93
- VALUES
94
- ( 2 , 2 )
95
- ''' .format (self .keyspace_name , self .function_table_name )
96
-
97
- self .select = '''
98
- SELECT * FROM {0}.{1}
99
- ''' .format (self .keyspace_name , self .function_table_name )
100
-
101
- def tearDown (self ):
102
- self .drop_function_table ()
80
+ @classmethod
81
+ def setUpClass (cls ):
82
+ cls .common_setup (rf = 1 , create_class_table = True )
83
+ q = "INSERT INTO {0}.{1} (k, v) VALUES (%s, %s)" .format (cls .ks_name , cls .ks_name )
84
+ cls .session .execute (q , (1 , 1 ))
85
+ cls .session .execute (q , (2 , 2 ))
86
+ cls .select = "SELECT * FROM {0}.{1}" .format (cls .ks_name , cls .ks_name )
87
+
88
+ def _results_from_row_factory (self , row_factory ):
89
+ cluster = Cluster (protocol_version = PROTOCOL_VERSION ,
90
+ execution_profiles = {EXEC_PROFILE_DEFAULT : ExecutionProfile (row_factory = row_factory )})
91
+ with cluster :
92
+ return cluster .connect ().execute (self .select )
103
93
104
94
def test_tuple_factory (self ):
105
- session = self .session
106
- session .row_factory = tuple_factory
107
-
108
- session .execute (self .insert1 )
109
- session .execute (self .insert2 )
110
-
111
- result = session .execute (self .select )
112
-
95
+ result = self ._results_from_row_factory (tuple_factory )
113
96
self .assertIsInstance (result , ResultSet )
114
97
self .assertIsInstance (result [0 ], tuple )
115
98
@@ -122,14 +105,7 @@ def test_tuple_factory(self):
122
105
self .assertEqual (result [1 ][0 ], 2 )
123
106
124
107
def test_named_tuple_factory (self ):
125
- session = self .session
126
- session .row_factory = named_tuple_factory
127
-
128
- session .execute (self .insert1 )
129
- session .execute (self .insert2 )
130
-
131
- result = session .execute (self .select )
132
-
108
+ result = self ._results_from_row_factory (named_tuple_factory )
133
109
self .assertIsInstance (result , ResultSet )
134
110
result = list (result )
135
111
@@ -141,17 +117,10 @@ def test_named_tuple_factory(self):
141
117
self .assertEqual (result [1 ].k , result [1 ].v )
142
118
self .assertEqual (result [1 ].k , 2 )
143
119
144
- def test_dict_factory (self ):
145
- session = self .session
146
- session .row_factory = dict_factory
147
-
148
- session .execute (self .insert1 )
149
- session .execute (self .insert2 )
150
-
151
- result = session .execute (self .select )
152
-
120
+ def _test_dict_factory (self , row_factory , row_type ):
121
+ result = self ._results_from_row_factory (row_factory )
153
122
self .assertIsInstance (result , ResultSet )
154
- self .assertIsInstance (result [0 ], dict )
123
+ self .assertIsInstance (result [0 ], row_type )
155
124
156
125
for row in result :
157
126
self .assertEqual (row ['k' ], row ['v' ])
@@ -161,25 +130,11 @@ def test_dict_factory(self):
161
130
self .assertEqual (result [1 ]['k' ], result [1 ]['v' ])
162
131
self .assertEqual (result [1 ]['k' ], 2 )
163
132
164
- def test_ordered_dict_factory (self ):
165
- session = self .session
166
- session .row_factory = ordered_dict_factory
167
-
168
- session .execute (self .insert1 )
169
- session .execute (self .insert2 )
170
-
171
- result = session .execute (self .select )
172
-
173
- self .assertIsInstance (result , ResultSet )
174
- self .assertIsInstance (result [0 ], OrderedDict )
175
-
176
- for row in result :
177
- self .assertEqual (row ['k' ], row ['v' ])
133
+ def test_dict_factory (self ):
134
+ self ._test_dict_factory (dict_factory , dict )
178
135
179
- self .assertEqual (result [0 ]['k' ], result [0 ]['v' ])
180
- self .assertEqual (result [0 ]['k' ], 1 )
181
- self .assertEqual (result [1 ]['k' ], result [1 ]['v' ])
182
- self .assertEqual (result [1 ]['k' ], 2 )
136
+ def test_ordered_dict_factory (self ):
137
+ self ._test_dict_factory (ordered_dict_factory , OrderedDict )
183
138
184
139
def test_generator_row_factory (self ):
185
140
"""
@@ -201,7 +156,12 @@ def _gen_row_factory(rows):
201
156
session = self .session
202
157
session .row_factory = generator_row_factory
203
158
204
- session .execute (self .insert1 )
159
+ session .execute ('''
160
+ INSERT INTO {0}.{1}
161
+ ( k , v )
162
+ VALUES
163
+ ( 1 , 1 )
164
+ ''' .format (self .keyspace_name , self .function_table_name ))
205
165
result = session .execute (self .select )
206
166
self .assertIsInstance (result , ResultSet )
207
167
first_row = result .one ()
@@ -218,8 +178,7 @@ def setup_class(cls):
218
178
cls .session = cls .cluster .connect ()
219
179
cls ._cass_version , cls ._cql_version = get_server_versions ()
220
180
ddl = '''
221
- CREATE TABLE test1rf.table_num_col ( key blob PRIMARY KEY, "626972746864617465" blob )
222
- WITH COMPACT STORAGE'''
181
+ CREATE TABLE test1rf.table_num_col ( key blob PRIMARY KEY, "626972746864617465" blob )'''
223
182
cls .session .execute (ddl )
224
183
225
184
@classmethod
@@ -252,8 +211,9 @@ def test_can_select_with_dict_factory(self):
252
211
"""
253
212
can SELECT numeric column using dict_factory
254
213
"""
255
- self .session .row_factory = dict_factory
256
- try :
257
- self .session .execute ('SELECT * FROM test1rf.table_num_col' )
258
- except ValueError as e :
259
- self .fail ("Unexpected ValueError exception: %s" % e .message )
214
+ with Cluster (protocol_version = PROTOCOL_VERSION ,
215
+ execution_profiles = {EXEC_PROFILE_DEFAULT : ExecutionProfile (row_factory = dict_factory )}) as cluster :
216
+ try :
217
+ cluster .connect ().execute ('SELECT * FROM test1rf.table_num_col' )
218
+ except ValueError as e :
219
+ self .fail ("Unexpected ValueError exception: %s" % e .message )
0 commit comments