Author: gdusbabek
Date: Thu Sep  2 16:42:25 2010
New Revision: 992015

URL: http://svn.apache.org/viewvc?rev=992015&view=rev
Log:
make avro sc tests more like thrift 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=992015&r1=992014&r2=992015&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_avro_super.py (original)
+++ cassandra/trunk/test/system/test_avro_super.py Thu Sep  2 16:42:25 2010
@@ -44,6 +44,16 @@ 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)])]
+
 class TestSuperOperations(AvroTester):
 
     def _set_keyspace(self, keyspace):
@@ -52,36 +62,14 @@ class TestSuperOperations(AvroTester):
     """
     Operations on Super column families
     """
-    def test_insert_super(self):
-        "setting and getting a super column"
+    def test_super_insert(self):
+        "simple super column insert"
         self._set_keyspace('Keyspace1')
-
-        params = dict()
-        params['key'] = 'key1'
-        params['column_parent'] = dict()
-        params['column_parent']['column_family'] = 'Super1'
-        params['column_parent']['super_column'] = 'sc1'
-        params['column'] = dict()
-        params['column']['name'] = avro_utils.i64(1)
-        params['column']['value'] = 'v1'
-        params['column']['clock'] = { 'timestamp' : 0 }
-        params['consistency_level'] = 'ONE'
-        self.client.request('insert', params)
-
-        read_params = dict()
-        read_params['key'] = params['key']
-        read_params['column_path'] = dict()
-        read_params['column_path']['column_family'] = 'Super1'
-        read_params['column_path']['super_column'] = 
params['column_parent']['super_column']
-        read_params['column_path']['column'] = params['column']['name']
-        read_params['consistency_level'] = 'ONE'
-
-        cosc = self.client.request('get', read_params)
-
-        avro_utils.assert_cosc(cosc)
-        avro_utils.assert_columns_match(cosc['column'], params['column'])
-
+        self._insert_super()
+        self._verify_super()
+        
     def test_slice_super(self):
+        "tests simple insert and get_slice"
         self._set_keyspace('Keyspace1')
         self._insert_super()
         p = {'slice_range': {'start': '', 'finish': '', 'reversed': False, 
'count': 10}}
@@ -90,6 +78,7 @@ class TestSuperOperations(AvroTester):
         avro_utils.assert_cosc(cosc[0])
     
     def test_missing_super(self):
+        "verifies that inserting doesn't yield false positives."
         self._set_keyspace('Keyspace1')
         avro_utils.assert_raises(AvroRemoteException,
                 self.client.request,
@@ -105,5 +94,13 @@ class TestSuperOperations(AvroTester):
         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'))
         self.client.request('insert', _make_write_params(key, 'Super1', 'sc2', 
avro_utils.i64(6), 'value6', 0, 'ONE'))
-        time.sleep(0.1)
-
+    
+    def _big_slice(self, key, column_parent):
+        p = {'slice_range': {'start': '', 'finish': '', 'reversed': False, 
'count': 1000}}
+        return self.client.request('get_slice',  {'key': key, 'column_parent': 
column_parent, 'predicate': p, 'consistency_level': 'ONE'})
+        
+    def _verify_super(self, supercf='Super1', key='key1'):
+        col = self.client.request('get', _make_read_params(key, supercf, 
'sc1', avro_utils.i64(4), 'ONE'))['column']
+        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


Reply via email to