I happen to be running the pymssql tests on a machine that has a port forward set up that forwards localhost:1433 to a SQL Server running in a virtual machine (thus in my tests/tests.cfg I connect to localhost:1433).
With this configuration, there are 4 test failures.
Here's a traceback for one of them; the rest are similar:
======================================================================
ERROR: tests.test_config.TestConfig.test_tds_protocal_version_42
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/marca/dev/git-repos/pymssql/.tox/py27/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/Users/marca/dev/git-repos/pymssql/tests/test_config.py", line 58, in test_tds_protocal_version_42
tds_version='4.2'
File "/Users/marca/dev/git-repos/pymssql/tests/test_config.py", line 20, in connect
_mssql.connect(**kwargs)
File "_mssql.pyx", line 1628, in _mssql.connect (_mssql.c:16556)
return MSSQLConnection(*args, **kwargs)
File "_mssql.pyx", line 499, in _mssql.MSSQLConnection.__init__ (_mssql.c:4697)
maybe_raise_MSSQLDatabaseException(None)
File "_mssql.pyx", line 1368, in _mssql.maybe_raise_MSSQLDatabaseException (_mssql.c:13063)
raise ex
MSSQLDatabaseException: (18456, "Login failed for user 'sa'.DB-Lib error message 18456, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n")
These are caused by the fact that the tests attempt don't specify a hostname so they try to connect to localhost and normally localhost doesn't have a SQL Server on port 1433 and this fails with a "Database connection failed" exception that gets caught by the test code. If there is a SQL Server actually responding on port 1433 though, then it tries to connect and raises a different exception because the "sa" user doesn't exit and this exception is not caught by the test code.
This is easy to fix by either widening the exceptions that are caught or by specifying a hostname that is likely not to exist. I'm leaning towards the latter.
From msabramo on February 27, 2013 10:16:35
I happen to be running the pymssql tests on a machine that has a port forward set up that forwards localhost:1433 to a SQL Server running in a virtual machine (thus in my tests/tests.cfg I connect to localhost:1433).
With this configuration, there are 4 test failures.
Here's a traceback for one of them; the rest are similar:
These are caused by the fact that the tests attempt don't specify a hostname so they try to connect to localhost and normally localhost doesn't have a SQL Server on port 1433 and this fails with a "Database connection failed" exception that gets caught by the test code. If there is a SQL Server actually responding on port 1433 though, then it tries to connect and raises a different exception because the "sa" user doesn't exit and this exception is not caught by the test code.
This is easy to fix by either widening the exceptions that are caught or by specifying a hostname that is likely not to exist. I'm leaning towards the latter.
Original issue: http://code.google.com/p/pymssql/issues/detail?id=116