sql_db: Better exceptions.
A closed cursor should behave the same as a closed connection, ie. OperationalError. Also instrument a function we don't expect to be called. bzr revid: p_christ@hol.gr-20101123135837-vkn3ph0e4bz9urf0
This commit is contained in:
parent
c67f1746f4
commit
7d3afa7c0c
|
@ -28,6 +28,7 @@ from psycopg2.psycopg1 import cursor as psycopg1cursor
|
||||||
from psycopg2.pool import PoolError
|
from psycopg2.pool import PoolError
|
||||||
|
|
||||||
import psycopg2.extensions
|
import psycopg2.extensions
|
||||||
|
import warnings
|
||||||
|
|
||||||
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
|
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
|
||||||
|
|
||||||
|
@ -71,7 +72,7 @@ class Cursor(object):
|
||||||
@wraps(f)
|
@wraps(f)
|
||||||
def wrapper(self, *args, **kwargs):
|
def wrapper(self, *args, **kwargs):
|
||||||
if self.__closed:
|
if self.__closed:
|
||||||
raise psycopg2.ProgrammingError('Unable to use the cursor after having closed it')
|
raise psycopg2.OperationalError('Unable to use the cursor after having closed it')
|
||||||
return f(self, *args, **kwargs)
|
return f(self, *args, **kwargs)
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
@ -337,10 +338,12 @@ class Connection(object):
|
||||||
def __nonzero__(self):
|
def __nonzero__(self):
|
||||||
"""Check if connection is possible"""
|
"""Check if connection is possible"""
|
||||||
try:
|
try:
|
||||||
|
warnings.warn("You use an expensive function to test a connection.",
|
||||||
|
DeprecationWarning, stacklevel=1)
|
||||||
cr = self.cursor()
|
cr = self.cursor()
|
||||||
cr.close()
|
cr.close()
|
||||||
return True
|
return True
|
||||||
except:
|
except Exception:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue