sqlite3 regression in 7.3.4: TypeError: _reset() missing 1 required positional argument: 'token'
When running SQLAlchemy's test suite, I get the following error:
===================================================================== ERRORS =====================================================================
______________________________________ ERROR at teardown of LoaderCriteriaTest.test_unnamed_param_dont_fail ______________________________________
Traceback (most recent call last):
File "/usr/lib/pypy3.7/lib_pypy/_functools.py", line 80, in __call__
return self._func(*(self._args + fargs), **fkeywords)
File "/usr/lib/pypy3.7/site-packages/_pytest/fixtures.py", line 1034, in finish
raise exc
File "/usr/lib/pypy3.7/site-packages/_pytest/fixtures.py", line 1027, in finish
func()
File "/usr/lib/pypy3.7/lib_pypy/_functools.py", line 80, in __call__
return self._func(*(self._args + fargs), **fkeywords)
File "/usr/lib/pypy3.7/site-packages/_pytest/fixtures.py", line 941, in _teardown_yield_fixture
next(it)
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/testing/fixtures.py", line 449, in _setup_tables_test_class
cls._teardown_once_metadata_bind()
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/testing/fixtures.py", line 310, in _teardown_once_metadata_bind
drop_all_tables_from_metadata(cls._tables_metadata, cls.bind)
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/testing/util.py", line 407, in drop_all_tables_from_metadata
go(connection)
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/testing/util.py", line 401, in go
metadata.drop_all(connection)
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/sql/schema.py", line 4774, in drop_all
ddl.SchemaDropper, self, checkfirst=checkfirst, tables=tables
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 2016, in _run_ddl_visitor
visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/sql/visitors.py", line 483, in traverse_single
return meth(obj, **kw)
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/sql/ddl.py", line 1024, in visit_metadata
_ignore_sequences=seq_coll,
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/sql/visitors.py", line 483, in traverse_single
return meth(obj, **kw)
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/sql/ddl.py", line 1097, in visit_table
self.connection.execute(DropTable(table))
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 1200, in execute
return meth(self, multiparams, params, _EMPTY_EXECUTION_OPTS)
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/sql/ddl.py", line 78, in _execute_on_connection
self, multiparams, params, execution_options
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 1296, in _execute_ddl
compiled,
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 1749, in _execute_context
e, statement, parameters, cursor, context
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 1933, in _handle_dbapi_exception
util.raise_(exc_info[1], with_traceback=exc_info[2])
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/util/compat.py", line 211, in raise_
raise exception
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/engine/base.py", line 1706, in _execute_context
cursor, statement, parameters, context
File "/tmp/sqlalchemy/test/../lib/sqlalchemy/engine/default.py", line 691, in do_execute
cursor.execute(statement, parameters)
File "/usr/lib/pypy3.7/lib_pypy/_sqlite3.py", line 827, in wrapper
return func(self, *args, **kwargs)
File "/usr/lib/pypy3.7/lib_pypy/_sqlite3.py", line 988, in execute
return self.__execute(False, sql, [params])
File "/usr/lib/pypy3.7/lib_pypy/_sqlite3.py", line 955, in __execute
self.__connection._reset_already_committed_statements()
File "/usr/lib/pypy3.7/lib_pypy/_sqlite3.py", line 399, in _reset_already_committed_statements
statement._reset()
TypeError: _reset() missing 1 required positional argument: 'token'
========================================================== 26 passed, 1 error in 1.12s ===========================================================
FWICS, a token
parameter was added to the _reset()
method but apparently it was missed in _reset_already_committed_statements
.