mssql test failure regressions in 1.0

Issue #3360 resolved
Mike Bayer repo owner created an issue

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)

  1. Mike Bayer reporter
    • 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>>

  2. Mike Bayer 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>>

  3. Log in to comment