summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradustman <adustman@9fc6cd9a-920d-0410-adcf-ac96716ed7e8>2012-09-08 21:22:53 +0000
committeradustman <adustman@9fc6cd9a-920d-0410-adcf-ac96716ed7e8>2012-09-08 21:22:53 +0000
commit7676693b8f5f1b9ae62f40f4c872fc1e3777ba71 (patch)
tree70369e0df320b9271b403608009c0e32b5445401
parent8041cc6df636b9c42d52e01b727aa98b43f3632c (diff)
downloadmysqldb1-remotes/svn/MySQLdb-1.2.tar.gz
More Python 3 fixes. Py 3 blows up when testing BLOBs.remotes/svn/MySQLdb-1.2
-rw-r--r--MySQLdb/MySQLdb/connections.py2
-rw-r--r--MySQLdb/MySQLdb/converters.py42
-rw-r--r--MySQLdb/tests/capabilities.py3
-rw-r--r--MySQLdb/tests/test_MySQLdb_capabilities.py4
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