mssql test failure regressions in 1.0
Issue #3360
resolved
in test/sql/test_query to start; these do not occur in 0.9
#!
======================================================================= FAILURES ========================================================================
________________________________________________ QueryTest_mssql_pymssql.test_implicit_id_insert_select _________________________________________________
Traceback (most recent call last):
File "/Users/classic/dev/sqlalchemy/test/sql/test_query.py", line 283, in test_implicit_id_insert_select
testing.db.execute(stmt)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 1978, in execute
return connection.execute(statement, *multiparams, **params)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 914, in execute
return meth(self, multiparams, params)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
compiled_sql, distilled_params
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 1146, in _execute_context
context)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 1332, in _handle_dbapi_exception
exc_info
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/util/compat.py", line 199, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 1139, in _execute_context
context)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/engine/default.py", line 442, in do_execute
cursor.execute(statement, parameters)
File "pymssql.pyx", line 465, in pymssql.Cursor.execute (pymssql.c:6572)
OperationalError: (pymssql.OperationalError) (544, "Cannot insert explicit value for identity column in table 'query_users' when IDENTITY_INSERT is set to OFF.DB-Lib error message 544, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n") [SQL: 'INSERT INTO query_users (user_id, user_name) SELECT query_users.user_id, query_users.user_name \nFROM query_users \nWHERE query_users.user_id = %(user_id_1)s'] [parameters: {'user_id_1': 20}]
_____________________________________________________ QueryTest_mssql_pymssql.test_lastrow_accessor _____________________________________________________
Traceback (most recent call last):
File "/Users/classic/dev/sqlalchemy/test/sql/test_query.py", line 226, in test_lastrow_accessor
i = insert_values(engine, table, values)
File "/Users/classic/dev/sqlalchemy/test/sql/test_query.py", line 133, in insert_values
ret[c.key] = row[c]
TypeError: 'NoneType' object has no attribute '__getitem__'
____________________________________________________ QueryTest_mssql_pymssql.test_misordered_lastrow ____________________________________________________
Traceback (most recent call last):
File "<string>", line 2, in test_misordered_lastrow
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/testing/exclusions.py", line 95, in decorate
return self._do(config._current, fn, *args, **kw)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/testing/exclusions.py", line 124, in _do
self._expect_failure(config, ex, name=fn.__name__)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/testing/exclusions.py", line 136, in _expect_failure
util.raise_from_cause(ex)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/util/compat.py", line 199, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/testing/exclusions.py", line 122, in _do
return_value = fn(*args, **kw)
File "/Users/classic/dev/sqlalchemy/test/sql/test_query.py", line 273, in test_misordered_lastrow
assert id == 12
AssertionError: assert None == 12
_____________________________________________________ TableInsertTest_mssql_pymssql.test_uppercase ______________________________________________________
Traceback (most recent call last):
File "/Users/classic/dev/sqlalchemy/test/sql/test_query.py", line 1538, in test_uppercase
inserted_primary_key=[1]
File "/Users/classic/dev/sqlalchemy/test/sql/test_query.py", line 1512, in _test
eq_(r.inserted_primary_key, inserted_primary_key)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/testing/assertions.py", line 211, in eq_
assert a == b, msg or "%r != %r" % (a, b)
AssertionError: [None] != [1]
______________________________________________ TableInsertTest_mssql_pymssql.test_uppercase_direct_params _______________________________________________
Traceback (most recent call last):
File "/Users/classic/dev/sqlalchemy/test/sql/test_query.py", line 1573, in test_uppercase_direct_params
inserted_primary_key=[1]
File "/Users/classic/dev/sqlalchemy/test/sql/test_query.py", line 1512, in _test
eq_(r.inserted_primary_key, inserted_primary_key)
File "/Users/classic/dev/sqlalchemy/test/../lib/sqlalchemy/testing/assertions.py", line 211, in eq_
assert a == b, msg or "%r != %r" % (a, b)
AssertionError: [None] != [1]
================================================================ short test summary info ================================================================
FAIL test/sql/test_query.py::QueryTest_mssql_pymssql::()::test_implicit_id_insert_select
FAIL test/sql/test_query.py::QueryTest_mssql_pymssql::()::test_lastrow_accessor
FAIL test/sql/test_query.py::QueryTest_mssql_pymssql::()::test_misordered_lastrow
FAIL test/sql/test_query.py::TableInsertTest_mssql_pymssql::()::test_uppercase
FAIL test/sql/test_query.py::TableInsertTest_mssql_pymssql::()::test_uppercase_direct_params
Comments (3)
-
reporter -
reporter - changed status to resolved
- Fixed a regression where the "last inserted id" mechanics would
fail to store the correct value for MSSQL on an INSERT where the
primary key value was present in the insert params before execution.
fixes
#3360
→ <<cset 1b83b588f557>>
-
reporter - ensure that the keys we put into the parameters dictionary
for an insert from select are the string names, and not
the Column objects. The MSSQL dialect in particular relies upon
checking for these keys in params to know if identity insert
should be on. references
#3360
→ <<cset 07153dc09265>>
- ensure that the keys we put into the parameters dictionary
for an insert from select are the string names, and not
the Column objects. The MSSQL dialect in particular relies upon
checking for these keys in params to know if identity insert
should be on. references
- Log in to comment
most of the failures come from 356d6659b17d199c1a5ecc4241e7ee3edc6a754e