summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/sqlalchemy/dialects/mssql/pymssql.py2
-rw-r--r--test/dialect/test_mssql.py6
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/pymssql.py b/lib/sqlalchemy/dialects/mssql/pymssql.py
index c86ebefb3..b916612fb 100644
--- a/lib/sqlalchemy/dialects/mssql/pymssql.py
+++ b/lib/sqlalchemy/dialects/mssql/pymssql.py
@@ -85,6 +85,8 @@ class MSDialect_pymssql(MSDialect):
def is_disconnect(self, e, connection, cursor):
for msg in (
+ "Adaptive Server connection timed out",
+ "message 20003", # connection timeout
"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 08c72a0ec..def70207e 100644
--- a/test/dialect/test_mssql.py
+++ b/test/dialect/test_mssql.py
@@ -1321,6 +1321,12 @@ class ParseConnectTest(fixtures.TestBase, AssertsCompiledSQL):
'user': 'scott', 'database': 'test'}], connection
)
+ def test_pymssql_disconnect(self):
+ dialect = pymssql.dialect()
+
+ for error in ['Adaptive Server connection timed out', 'message 20003']:
+ eq_(dialect.is_disconnect(error, None, None), True)
+
@testing.only_on(['mssql+pyodbc', 'mssql+pymssql'], "FreeTDS specific test")
def test_bad_freetds_warning(self):
engine = engines.testing_engine()