From: John Anderson Date: Mon, 18 Mar 2013 21:49:28 +0000 (-0700) Subject: Added disconnect checks for timeout, unable to read, and unable to write X-Git-Tag: rel_0_8_1~26^2~2^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb43db6bd1354191732bf503fac84cf3c261bcb5;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Added disconnect checks for timeout, unable to read, and unable to write --- diff --git a/lib/sqlalchemy/dialects/mssql/pymssql.py b/lib/sqlalchemy/dialects/mssql/pymssql.py index 6f6d3b01fd..0754f7f764 100644 --- a/lib/sqlalchemy/dialects/mssql/pymssql.py +++ b/lib/sqlalchemy/dialects/mssql/pymssql.py @@ -85,6 +85,9 @@ class MSDialect_pymssql(MSDialect): def is_disconnect(self, e, connection, cursor): for msg in ( + "Error 20003", # Connection Timeout + "Error 20004", # Read from SQL server failed + "Error 20006", # Write to SQL Server failed "Error 10054", "Not connected to any MS SQL server", "Connection is closed" diff --git a/test/dialect/test_mssql.py b/test/dialect/test_mssql.py index 06f3d2805e..b38d763723 100644 --- a/test/dialect/test_mssql.py +++ b/test/dialect/test_mssql.py @@ -1320,6 +1320,12 @@ class ParseConnectTest(fixtures.TestBase, AssertsCompiledSQL): 'user': 'scott', 'database': 'test'}], connection ) + def test_pymssql_disconnect(self): + dialect = pymssql.dialect() + + for error in ['20003', '20003', '20006']: + eq_(dialect.is_disconnect('Error %s' % error, None, None), True) + @testing.only_on(['mssql+pyodbc', 'mssql+pymssql'], "FreeTDS specific test") def test_bad_freetds_warning(self): engine = engines.testing_engine()