mirror of
https://github.com/psycopg/psycopg2.git
synced 2025-02-12 15:20:32 +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`).
|
declared (:ticket:`#146`).
|
||||||
- Fixed bad interaction of setup.py with other dependencies in
|
- Fixed bad interaction of setup.py with other dependencies in
|
||||||
Distribute project on Python 3 (ticket #153).
|
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
|
What's new in psycopg 2.4.6
|
||||||
|
|
|
@ -642,6 +642,7 @@ static int
|
||||||
_conn_poll_connecting(connectionObject *self)
|
_conn_poll_connecting(connectionObject *self)
|
||||||
{
|
{
|
||||||
int res = PSYCO_POLL_ERROR;
|
int res = PSYCO_POLL_ERROR;
|
||||||
|
const char *msg;
|
||||||
|
|
||||||
Dprintf("conn_poll: poll connecting");
|
Dprintf("conn_poll: poll connecting");
|
||||||
switch (PQconnectPoll(self->pgconn)) {
|
switch (PQconnectPoll(self->pgconn)) {
|
||||||
|
@ -656,7 +657,11 @@ _conn_poll_connecting(connectionObject *self)
|
||||||
break;
|
break;
|
||||||
case PGRES_POLLING_FAILED:
|
case PGRES_POLLING_FAILED:
|
||||||
case PGRES_POLLING_ACTIVE:
|
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;
|
res = PSYCO_POLL_ERROR;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -448,6 +448,16 @@ class AsyncTests(unittest.TestCase):
|
||||||
self.wait(self.conn)
|
self.wait(self.conn)
|
||||||
self.assertEqual(cur.fetchone(), (42,))
|
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():
|
def test_suite():
|
||||||
return unittest.TestLoader().loadTestsFromName(__name__)
|
return unittest.TestLoader().loadTestsFromName(__name__)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user