diff options
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/pymssql.py | 3 | ||||
| -rw-r--r-- | test/dialect/test_mssql.py | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/pymssql.py b/lib/sqlalchemy/dialects/mssql/pymssql.py index 6f6d3b01f..0754f7f76 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 06f3d2805..b38d76372 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() |
