Author: gdusbabek
Date: Thu Sep 2 19:00:47 2010
New Revision: 992054
URL: http://svn.apache.org/viewvc?rev=992054&view=rev
Log:
avro sc tests
Modified:
cassandra/trunk/test/system/test_avro_super.py
Modified: cassandra/trunk/test/system/test_avro_super.py
URL:
http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_avro_super.py?rev=992054&r1=992053&r2=992054&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_avro_super.py (original)
+++ cassandra/trunk/test/system/test_avro_super.py Thu Sep 2 19:00:47 2010
@@ -44,15 +44,37 @@ def _make_read_params(key, cf, sc, c, cl
params['consistency_level'] = cl
return params
-def _col(name, value, clock, ttl=None):
- return {'name':name, 'value':value, 'clock': {'timestamp':clock}, 'ttl':
ttl}
-
def _super_col(name, columns):
return {'name': name, 'columns': columns}
-_SUPER_COLUMNS = [_super_col('sc1', [_col(avro_utils.i64(4), 'value4', 0)]),
- _super_col('sc2', [_col(avro_utils.i64(5), 'value5', 0),
- _col(avro_utils.i64(6), 'value6', 0)])]
+def SlicePredicate(**kwargs):
+ return kwargs
+
+def SliceRange(start='', finish='', reversed=False, count=10):
+ return {'start': start, 'finish': finish, 'reversed':reversed, 'count':
count}
+
+def ColumnParent(*args, **kwargs):
+ cp = {}
+ if args[0]:
+ cp['column_family'] = args[0]
+ if args[1]:
+ cp['super_column'] = args[1]
+ if not args:
+ cp = kwargs
+ return cp
+
+def Clock(timestamp=0):
+ return {'timestamp': timestamp}
+
+def Column(name, value, clock, ttl=None):
+ return {'name':name, 'value':value, 'clock': clock, 'ttl': ttl}
+
+def _i64(i):
+ return avro_utils.i64(i)
+
+_SUPER_COLUMNS = [_super_col('sc1', [Column(avro_utils.i64(4), 'value4',
Clock(0))]),
+ _super_col('sc2', [Column(avro_utils.i64(5), 'value5',
Clock(0)),
+ Column(avro_utils.i64(6), 'value6',
Clock(0))])]
class TestSuperOperations(AvroTester):
@@ -89,7 +111,29 @@ class TestSuperOperations(AvroTester):
self.client.request,
'get',
_make_read_params('key1', 'Super1', 'sc1', avro_utils.i64(1),
'ONE'))
+
+ def test_super_get(self):
+ "read back a super column"
+ self._set_keyspace('Keyspace1')
+ self._insert_super()
+ result = self.client.request('get', _make_read_params('key1',
'Super1', 'sc2', None, 'ONE'))['super_column']
+ assert result == _SUPER_COLUMNS[1], result
+
+ def test_super_subcolumn_limit(self):
+ "test get_slice honors subcolumn reversal and limit"
+ self._set_keyspace('Keyspace1')
+ self._insert_super()
+ p = SlicePredicate(slice_range=SliceRange('', '', False, 1))
+ column_parent = ColumnParent('Super1', 'sc2')
+ slice = [result['column'] for result in
self.client.request('get_slice', {'key': 'key1', 'column_parent':
column_parent, 'predicate': p, 'consistency_level': 'ONE'})]
+ assert slice == [Column(_i64(5), 'value5', Clock(0))], slice
+ p = SlicePredicate(slice_range=SliceRange('', '', True, 1))
+ slice = [result['column'] for result in
self.client.request('get_slice', {'key': 'key1', 'column_parent':
column_parent, 'predicate': p, 'consistency_level': 'ONE'})]
+ assert slice == [Column(_i64(6), 'value6', Clock(0))], slice
+
+ # internal helper functions.
+
def _insert_super(self, key='key1'):
self.client.request('insert', _make_write_params(key, 'Super1', 'sc1',
avro_utils.i64(4), 'value4', 0, 'ONE'))
self.client.request('insert', _make_write_params(key, 'Super1', 'sc2',
avro_utils.i64(5), 'value5', 0, 'ONE'))
@@ -104,3 +148,4 @@ class TestSuperOperations(AvroTester):
avro_utils.assert_columns_match(col, {'name': avro_utils.i64(4),
'value': 'value4', 'timestamp': 0})
slice = [result['super_column'] for result in self._big_slice(key,
{'column_family': supercf})]
assert slice == _SUPER_COLUMNS, _SUPER_COLUMNS
+