mirror of
https://github.com/psycopg/psycopg2.git
synced 2025-02-12 07:10:33 +03:00
Meaningful connection errors report a meaningful message
Fixes issue #173. Conflicts: NEWS
This commit is contained in:
parent
00c1d867c2
commit
fb5e14c701
2
NEWS
2
NEWS
|
@ -6,6 +6,8 @@ What's new in psycopg 2.4.7
|
|||
declared (:ticket:`#146`).
|
||||
- Fixed bad interaction of setup.py with other dependencies in
|
||||
Distribute project on Python 3 (ticket #153).
|
||||
- Meaningful connection errors report a meaningful message, thanks to
|
||||
Alexey Borzenkov (:ticket:`#173`).
|
||||
|
||||
|
||||
What's new in psycopg 2.4.6
|
||||
|
|
|
@ -642,6 +642,7 @@ static int
|
|||
_conn_poll_connecting(connectionObject *self)
|
||||
{
|
||||
int res = PSYCO_POLL_ERROR;
|
||||
const char *msg;
|
||||
|
||||
Dprintf("conn_poll: poll connecting");
|
||||
switch (PQconnectPoll(self->pgconn)) {
|
||||
|
@ -656,7 +657,11 @@ _conn_poll_connecting(connectionObject *self)
|
|||
break;
|
||||
case PGRES_POLLING_FAILED:
|
||||
case PGRES_POLLING_ACTIVE:
|
||||
PyErr_SetString(OperationalError, "asynchronous connection failed");
|
||||
msg = PQerrorMessage(self->pgconn);
|
||||
if (!(msg && *msg)) {
|
||||
msg = "asynchronous connection failed";
|
||||
}
|
||||
PyErr_SetString(OperationalError, msg);
|
||||
res = PSYCO_POLL_ERROR;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -448,6 +448,16 @@ class AsyncTests(unittest.TestCase):
|
|||
self.wait(self.conn)
|
||||
self.assertEqual(cur.fetchone(), (42,))
|
||||
|
||||
def test_async_connection_error_message(self):
|
||||
try:
|
||||
cnn = psycopg2.connect('dbname=thisdatabasedoesntexist', async=True)
|
||||
self.wait(cnn)
|
||||
except psycopg2.Error, e:
|
||||
self.assertNotEqual(str(e), "asynchronous connection failed",
|
||||
"connection error reason lost")
|
||||
else:
|
||||
self.fail("no exception raised")
|
||||
|
||||
|
||||
def test_suite():
|
||||
return unittest.TestLoader().loadTestsFromName(__name__)
|
||||
|
|
Loading…
Reference in New Issue
Block a user