diff options
| author | John Anderson <sontek@gmail.com> | 2013-03-18 14:49:28 -0700 |
|---|---|---|
| committer | John Anderson <sontek@gmail.com> | 2013-03-18 14:49:28 -0700 |
| commit | cb43db6bd1354191732bf503fac84cf3c261bcb5 (patch) | |
| tree | 58c6fab90e620aea91e94ea3650f46291d1070fc | |
| parent | 9ad9ccec87b89023db611d70da2c6d455c29ab60 (diff) | |
| download | sqlalchemy-cb43db6bd1354191732bf503fac84cf3c261bcb5.tar.gz | |
Added disconnect checks for timeout, unable to read, and unable to write
| -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() |
