Fixed #17513 -- Prevented the MySQL backend from leaking MySQLdb-specific exceptions. Thanks Claude Paroz.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17352 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
f46003559c
commit
ca187fea88
|
@ -119,7 +119,7 @@ class CursorWrapper(object):
|
||||||
# misclassified and Django would prefer the more logical place.
|
# misclassified and Django would prefer the more logical place.
|
||||||
if e[0] in self.codes_for_integrityerror:
|
if e[0] in self.codes_for_integrityerror:
|
||||||
raise utils.IntegrityError, utils.IntegrityError(*tuple(e)), sys.exc_info()[2]
|
raise utils.IntegrityError, utils.IntegrityError(*tuple(e)), sys.exc_info()[2]
|
||||||
raise
|
raise utils.DatabaseError, utils.DatabaseError(*tuple(e)), sys.exc_info()[2]
|
||||||
except Database.DatabaseError, e:
|
except Database.DatabaseError, e:
|
||||||
raise utils.DatabaseError, utils.DatabaseError(*tuple(e)), sys.exc_info()[2]
|
raise utils.DatabaseError, utils.DatabaseError(*tuple(e)), sys.exc_info()[2]
|
||||||
|
|
||||||
|
|
|
@ -351,6 +351,12 @@ class BackendTestCase(TestCase):
|
||||||
self.assertTrue(hasattr(connection.ops, 'connection'))
|
self.assertTrue(hasattr(connection.ops, 'connection'))
|
||||||
self.assertEqual(connection, connection.ops.connection)
|
self.assertEqual(connection, connection.ops.connection)
|
||||||
|
|
||||||
|
def test_duplicate_table_error(self):
|
||||||
|
""" Test that creating an existing table returns a DatabaseError """
|
||||||
|
cursor = connection.cursor()
|
||||||
|
query = 'CREATE TABLE %s (id INTEGER);' % models.Article._meta.db_table
|
||||||
|
with self.assertRaises(DatabaseError):
|
||||||
|
cursor.execute(query)
|
||||||
|
|
||||||
# We don't make these tests conditional because that means we would need to
|
# We don't make these tests conditional because that means we would need to
|
||||||
# check and differentiate between:
|
# check and differentiate between:
|
||||||
|
|
Loading…
Reference in New Issue