mirror of
https://github.com/PyMySQL/mysqlclient.git
synced 2026-03-13 08:00:02 +08:00
Merge pull request #6 from PyMySQL/fix-nested-exception
Exception raised from _mysql should be reraise as is.
This commit is contained in:
@@ -34,6 +34,8 @@ def defaulterrorhandler(connection, cursor, errorclass, errorvalue):
|
||||
connection.messages.append(error)
|
||||
del cursor
|
||||
del connection
|
||||
if isinstance(errorvalue, BaseException):
|
||||
raise errorvalue
|
||||
if errorclass is not None:
|
||||
raise errorclass(errorvalue)
|
||||
else:
|
||||
|
||||
@@ -214,8 +214,7 @@ class BaseCursor(object):
|
||||
except (SystemExit, KeyboardInterrupt):
|
||||
raise
|
||||
except:
|
||||
exc, value, tb = sys.exc_info()
|
||||
del tb
|
||||
exc, value = sys.exc_info()[:2]
|
||||
self.messages.append((exc, value))
|
||||
self.errorhandler(self, exc, value)
|
||||
self._executed = query
|
||||
@@ -273,8 +272,7 @@ class BaseCursor(object):
|
||||
except (SystemExit, KeyboardInterrupt):
|
||||
raise
|
||||
except:
|
||||
exc, value, tb = sys.exc_info()
|
||||
del tb
|
||||
exc, value = sys.exc_info()[:2]
|
||||
self.errorhandler(self, exc, value)
|
||||
qs = '\n'.join([query[:p], ',\n'.join(q), query[e:]])
|
||||
if not PY2:
|
||||
|
||||
@@ -92,7 +92,16 @@ class test_MySQLdb(capabilities.DatabaseTest):
|
||||
|
||||
def test_ping(self):
|
||||
self.connection.ping()
|
||||
|
||||
|
||||
def test_reraise_exception(self):
|
||||
c = self.cursor
|
||||
try:
|
||||
c.execute("SELECT x FROM not_existing_table")
|
||||
except MySQLdb.ProgrammingError as e:
|
||||
self.assertEqual(e.args[0], 1146)
|
||||
return
|
||||
self.fail("Should raise ProgrammingError")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if test_MySQLdb.leak_test:
|
||||
|
||||
Reference in New Issue
Block a user