You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ee...@apache.org on 2010/02/26 20:13:56 UTC

svn commit: r916787 - in /incubator/cassandra/trunk: src/java/org/apache/cassandra/avro/AvroValidation.java src/java/org/apache/cassandra/avro/RecordFactory.java test/system/test_avro_server.py

Author: eevans
Date: Fri Feb 26 19:13:55 2010
New Revision: 916787

URL: http://svn.apache.org/viewvc?rev=916787&view=rev
Log:
real batch_insert test for avro + uncovered bugs

Patch by eevans

Modified:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/avro/RecordFactory.java
    incubator/cassandra/trunk/test/system/test_avro_server.py

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java?rev=916787&r1=916786&r2=916787&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java Fri Feb 26 19:13:55 2010
@@ -130,7 +130,7 @@
     throws InvalidRequestException
     {
         if (cosc.column != null)
-            AvroValidation.validateColumnPath(keyspace, newColumnPath(cfName, cosc.super_column.name, cosc.column.name));
+            AvroValidation.validateColumnPath(keyspace, newColumnPath(cfName, null, cosc.column.name));
 
         if (cosc.super_column != null)
             for (Column c : cosc.super_column.columns)

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/avro/RecordFactory.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/avro/RecordFactory.java?rev=916787&r1=916786&r2=916787&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/avro/RecordFactory.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/avro/RecordFactory.java Fri Feb 26 19:13:55 2010
@@ -71,6 +71,7 @@
     static ColumnPath newColumnPath(String cfName, ByteBuffer superColumn, ByteBuffer column)
     {
         ColumnPath cPath = new ColumnPath();
+        cPath.column_family = new Utf8(cfName);
         cPath.super_column = superColumn;
         cPath.column = column;
         return cPath;

Modified: incubator/cassandra/trunk/test/system/test_avro_server.py
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/system/test_avro_server.py?rev=916787&r1=916786&r2=916787&view=diff
==============================================================================
--- incubator/cassandra/trunk/test/system/test_avro_server.py (original)
+++ incubator/cassandra/trunk/test/system/test_avro_server.py Fri Feb 26 19:13:55 2010
@@ -89,6 +89,12 @@
     assert colA['value'] == colB['value'], \
             "column value mismatch: %s != %s" % (colA['value'], colB['value'])
 
+def assert_cosc(thing, with_supercolumn=False):
+    containing = with_supercolumn and 'super_column' or 'column'
+    assert isinstance(thing, dict), "Expected dict, got %s" % type(thing)
+    assert thing.has_key(containing) and thing[containing].has_key('name'), \
+            "Invalid or missing \"%s\"" % containing
+
 def random_column(columns=COLUMNS):
     return columns[randint(0, len(columns)-1)]
 
@@ -103,8 +109,7 @@
         _insert_column(self.client, column['name'], column['value'])
         result = _get_column(self.client, column['name'])
 
-        assert isinstance(result, dict) and result.has_key('column') \
-                and result['column'].has_key('name')
+        assert_cosc(result)
         assert_columns_match(result['column'], column)
 
     def test_insert_super(self):
@@ -115,14 +120,27 @@
         _insert_supercolumn(self.client, sc['name'], col['name'], col['value'])
         result = _get_supercolumn(self.client, sc['name'], col['name'])
 
-        assert isinstance(result, dict) and result.has_key('column') \
-                and result['column'].has_key('name')
+        assert_cosc(result)
         assert_columns_match(result['column'], col)
 
     def test_batch_insert(self):
         "performing a batch insert operation"
-        # TODO: do
-        pass
+        params = dict()
+        params['keyspace'] = 'Keyspace1'
+        params['key'] = 'key1'
+        params['consistency_level'] = 'ONE'
+
+        # Map<string, list<ColumnOrSuperColumn>>
+        params['cfmap'] = dict()
+        params['cfmap']['Standard1'] = list()
+
+        for i in range(0,3):
+            params['cfmap']['Standard1'].append(dict(column=COLUMNS[i]))
+
+        self.client.request('batch_insert', params)
+
+        for i in range(0,3):
+            assert_cosc(_get_column(self.client, COLUMNS[i]['name']))
 
     def test_get_api_version(self):
         "getting the remote api version string"