diff options
Diffstat (limited to 'MySQLdb')
-rw-r--r-- | MySQLdb/MySQLdb/connections.py | 2 | ||||
-rw-r--r-- | MySQLdb/MySQLdb/converters.py | 42 | ||||
-rw-r--r-- | MySQLdb/tests/capabilities.py | 3 | ||||
-rw-r--r-- | MySQLdb/tests/test_MySQLdb_capabilities.py | 4 |
4 files changed, 31 insertions, 20 deletions
diff --git a/MySQLdb/MySQLdb/connections.py b/MySQLdb/MySQLdb/connections.py index 427036a..d281cbd 100644 --- a/MySQLdb/MySQLdb/connections.py +++ b/MySQLdb/MySQLdb/connections.py @@ -151,7 +151,7 @@ class Connection(_mysql.connection): kwargs2 = kwargs.copy() - if kwargs.has_key('conv'): + if 'conv' in kwargs: conv = kwargs['conv'] else: conv = conversions diff --git a/MySQLdb/MySQLdb/converters.py b/MySQLdb/MySQLdb/converters.py index cda1db8..14b1f52 100644 --- a/MySQLdb/MySQLdb/converters.py +++ b/MySQLdb/MySQLdb/converters.py @@ -35,7 +35,17 @@ MySQL.connect(). from _mysql import string_literal, escape_sequence, escape_dict, escape, NULL from MySQLdb.constants import FIELD_TYPE, FLAG from MySQLdb.times import * -import types + +try: + from types import IntType, LongType, FloatType, NoneType, TupleType, ListType, DictType, InstanceType, \ + StringType, UnicodeType, ObjectType, BooleanType, ClassType, TypeType +except ImportError: + # Python 3 + long = int + IntType, LongType, FloatType, NoneType = int, long, float, type(None) + TupleType, ListType, DictType, InstanceType = tuple, list, dict, None + StringType, UnicodeType, ObjectType, BooleanType = bytes, str, object, bool + import array try: @@ -92,14 +102,14 @@ def Instance2Str(o, d): """ - if d.has_key(o.__class__): + if o.__class__ in d: return d[o.__class__](o, d) cl = filter(lambda x,o=o: - type(x) is types.ClassType + type(x) is ClassType and isinstance(o, x), d.keys()) if not cl and hasattr(types, 'ObjectType'): cl = filter(lambda x,o=o: - type(x) is types.TypeType + type(x) is TypeType and isinstance(o, x) and d[x] is not Instance2Str, d.keys()) @@ -115,19 +125,19 @@ def array2Str(o, d): return Thing2Literal(o.tostring(), d) conversions = { - types.IntType: Thing2Str, - types.LongType: Long2Int, - types.FloatType: Float2Str, - types.NoneType: None2NULL, - types.TupleType: escape_sequence, - types.ListType: escape_sequence, - types.DictType: escape_dict, - types.InstanceType: Instance2Str, + IntType: Thing2Str, + LongType: Long2Int, + FloatType: Float2Str, + NoneType: None2NULL, + TupleType: escape_sequence, + ListType: escape_sequence, + DictType: escape_dict, + InstanceType: Instance2Str, array.ArrayType: array2Str, - types.StringType: Thing2Literal, # default - types.UnicodeType: Unicode2Str, - types.ObjectType: Instance2Str, - types.BooleanType: Bool2Str, + StringType: Thing2Literal, # default + UnicodeType: Unicode2Str, + ObjectType: Instance2Str, + BooleanType: Bool2Str, DateTimeType: DateTime2literal, DateTimeDeltaType: DateTimeDelta2literal, set: Set2Str, diff --git a/MySQLdb/tests/capabilities.py b/MySQLdb/tests/capabilities.py index 0b508fa..6bb7436 100644 --- a/MySQLdb/tests/capabilities.py +++ b/MySQLdb/tests/capabilities.py @@ -24,8 +24,9 @@ class DatabaseTest(unittest.TestCase): db = self.db_module.connect(*self.connect_args, **self.connect_kwargs) self.connection = db self.cursor = db.cursor() + # TODO: this needs to be re-evaluated for Python 3 self.BLOBText = ''.join([chr(i) for i in range(256)] * 100); - self.BLOBUText = ''.join([unichr(i) for i in range(16384)]) + self.BLOBUText = u''.join([unichr(i) for i in range(16384)]) self.BLOBBinary = self.db_module.Binary(''.join([chr(i) for i in range(256)] * 16)) leak_test = True diff --git a/MySQLdb/tests/test_MySQLdb_capabilities.py b/MySQLdb/tests/test_MySQLdb_capabilities.py index a8f144a..98a2371 100644 --- a/MySQLdb/tests/test_MySQLdb_capabilities.py +++ b/MySQLdb/tests/test_MySQLdb_capabilities.py @@ -77,8 +77,8 @@ class test_MySQLdb(capabilities.DatabaseTest): from MySQLdb.constants import ER try: self.cursor.execute("describe some_non_existent_table"); - except self.connection.ProgrammingError as (msg,): - self.assertTrue(msg[0] == ER.NO_SUCH_TABLE) + except self.connection.ProgrammingError as msg: + self.assertTrue(msg.args[0].args[0] == ER.NO_SUCH_TABLE) def test_bug_3514287(self): c = self.cursor |