Changeset: 8021f81f2618 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8021f81f2618
Added Files:
        clients/python2/test/test_pythonize.py
        clients/python3/test/test_pythonize.py
Modified Files:
        clients/python2/monetdb/sql/pythonize.py
        clients/python2/test/runtests.py
        clients/python3/monetdb/sql/pythonize.py
        clients/python3/test/runtests.py
Branch: Feb2013
Log Message:

Merge with Oct2012 branch.


diffs (122 lines):

diff --git a/clients/python2/monetdb/sql/pythonize.py 
b/clients/python2/monetdb/sql/pythonize.py
--- a/clients/python2/monetdb/sql/pythonize.py
+++ b/clients/python2/monetdb/sql/pythonize.py
@@ -119,7 +119,7 @@ def convert(data, type_code):
 
 def Binary(data):
     """returns binary encoding of data"""
-    return ''.join([hex(ord(i))[2:] for i in data]).upper()
+    return ''.join(["%02X" % ord(i) for i in data])
 
 def DateFromTicks(ticks):
     """Convert ticks to python Date"""
diff --git a/clients/python2/test/runtests.py b/clients/python2/test/runtests.py
--- a/clients/python2/test/runtests.py
+++ b/clients/python2/test/runtests.py
@@ -36,6 +36,7 @@ except ImportError:
 
 import capabilities
 import dbapi20
+import test_pythonize
 
 warnings.filterwarnings('error')
 
@@ -93,6 +94,7 @@ if __name__ == '__main__':
     suites = [
         Test_Capabilities,
         Test_DBAPI20,
+        test_pythonize.TestPythonize,
     ]
 
     for suite in suites:
diff --git a/clients/python2/test/test_pythonize.py 
b/clients/python2/test/test_pythonize.py
new file mode 100644
--- /dev/null
+++ b/clients/python2/test/test_pythonize.py
@@ -0,0 +1,15 @@
+import unittest
+import monetdb.sql.pythonize
+
+class TestPythonize(unittest.TestCase):
+    def test_Binary(self):
+        input1 = ''.join([chr(i) for i in range(256)])
+        output1 = ''.join(["%02X" % i for i in range(256)])
+        result1 = monetdb.sql.pythonize.Binary(input1)
+        self.assertEqual(output1, result1)
+
+        input2 = '\tdharma'
+        output2 = '09646861726D61'
+        result2 = monetdb.sql.pythonize.Binary(input2)
+        self.assertEqual(output2, result2)
+
diff --git a/clients/python3/monetdb/sql/pythonize.py 
b/clients/python3/monetdb/sql/pythonize.py
--- a/clients/python3/monetdb/sql/pythonize.py
+++ b/clients/python3/monetdb/sql/pythonize.py
@@ -27,8 +27,8 @@ from monetdb.exceptions import Programmi
 import re
 
 def strip(data):
-    """ returns a python string, chops off quotes,
-    replaces escape characters"""
+    """ returns a python string, with chopped off quotes,
+    and replaced escape characters"""
     return ''.join([w.encode('utf-8').decode('unicode_escape') if '\\' in w 
else w for w in re.split('([\000-\200]+)', data[1:-1])])
 
 def py_bool(data):
@@ -120,7 +120,7 @@ def convert(data, type_code):
 
 def Binary(data):
     """returns binary encoding of data"""
-    return ''.join([hex(ord(i))[2:] for i in data]).upper()
+    return ''.join(["%02X" % ord(i) for i in data])
 
 def DateFromTicks(ticks):
     """Convert ticks to python Date"""
diff --git a/clients/python3/test/runtests.py b/clients/python3/test/runtests.py
--- a/clients/python3/test/runtests.py
+++ b/clients/python3/test/runtests.py
@@ -36,6 +36,7 @@ except ImportError:
 
 import capabilities
 import dbapi20
+import test_pythonize
 
 warnings.filterwarnings('error')
 
@@ -100,6 +101,16 @@ if __name__ == '__main__':
         TextTestRunnerNoTime(verbosity=3).run(tests)
 
 
+if __name__ == '__main__':
+    suites = [
+        Test_Capabilities,
+        Test_DBAPI20,
+        test_pythonize.TestPythonize,
+        ]
 
+    for suite in suites:
+        tests = unittest.TestLoader().loadTestsFromTestCase(suite)
+        TextTestRunnerNoTime(verbosity=3).run(tests)
 
 
+
diff --git a/clients/python3/test/test_pythonize.py 
b/clients/python3/test/test_pythonize.py
new file mode 100644
--- /dev/null
+++ b/clients/python3/test/test_pythonize.py
@@ -0,0 +1,15 @@
+import unittest
+import monetdb.sql.pythonize
+
+class TestPythonize(unittest.TestCase):
+    def test_Binary(self):
+        input1 = ''.join([chr(i) for i in range(256)])
+        output1 = ''.join(["%02X" % i for i in range(256)])
+        result1 = monetdb.sql.pythonize.Binary(input1)
+        self.assertEqual(output1, result1)
+
+        input2 = '\tdharma'
+        output2 = '09646861726D61'
+        result2 = monetdb.sql.pythonize.Binary(input2)
+        self.assertEqual(output2, result2)
+
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to