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
|
||||
|
||||
import psycopg2.extensions
|
||||
import warnings
|
||||
|
||||
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
|
||||
|
||||
|
@ -71,7 +72,7 @@ class Cursor(object):
|
|||
@wraps(f)
|
||||
def wrapper(self, *args, **kwargs):
|
||||
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 wrapper
|
||||
|
||||
|
@ -337,10 +338,12 @@ class Connection(object):
|
|||
def __nonzero__(self):
|
||||
"""Check if connection is possible"""
|
||||
try:
|
||||
warnings.warn("You use an expensive function to test a connection.",
|
||||
DeprecationWarning, stacklevel=1)
|
||||
cr = self.cursor()
|
||||
cr.close()
|
||||
return True
|
||||
except:
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue