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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list