Revision: 620f813baae3
Author:   paul cannon <[email protected]>
Date:     Mon Jul  9 21:42:25 2012
Log:      raise an error when unicode given for CQL query

Fixes #19.

http://code.google.com/a/apache-extras.org/p/cassandra-dbapi2/source/detail?r=620f813baae3

Modified:
 /cql/cursor.py
 /test/test_cql.py
 /test/test_prepared_queries.py

=======================================
--- /cql/cursor.py      Mon Mar 26 10:25:06 2012
+++ /cql/cursor.py      Mon Jul  9 21:42:25 2012
@@ -92,6 +92,8 @@
         return self.compress_query_text(prepared_q_text)

     def prepare_query(self, query, paramtypes=None):
+        if isinstance(query, unicode):
+            raise ValueError("CQL query must be bytes, not unicode")
         prepared_q_text, paramnames = prepare_query(query)
compressed_q, compression = self.compress_query_text(prepared_q_text) presult = self._connection.client.prepare_cql_query(compressed_q, compression)
@@ -110,6 +112,8 @@
         self.name_info = None

     def execute(self, cql_query, params={}, decoder=None):
+        if isinstance(cql_query, unicode):
+            raise ValueError("CQL query must be bytes, not unicode")
         self.pre_execution_setup()

         prepared_q, compress = self.prepare_inline(cql_query, params)
=======================================
--- /test/test_cql.py   Mon Mar 26 11:13:36 2012
+++ /test/test_cql.py   Mon Jul  9 21:42:25 2012
@@ -1471,3 +1471,6 @@
         cursor.execute("TRUNCATE StandardString1")
         cursor.execute("SELECT * FROM StandardString1")
assert cursor.rowcount == 0, "expected zero results, got %d" % cursor.rowcount
+
+    def test_reject_unicode(self):
+ self.assertRaises(ValueError, self.cursor.execute, u'select * from system.schema_keyspaces')
=======================================
--- /test/test_prepared_queries.py      Sat Jul  7 12:11:49 2012
+++ /test/test_prepared_queries.py      Mon Jul  9 21:42:25 2012
@@ -167,3 +167,9 @@
self.cursor.execute("select id, feet from counterito where id=2 and name = 'krang'")
         results = self.cursor.fetchone()
         self.assertEqual(results[1], 1)
+
+    def test_reject_unicode(self):
+        if self.cursor is None:
+            return
+
+ self.assertRaises(ValueError, self.cursor.prepare_query, u'select * from system.schema_keyspaces')

Reply via email to