Bump sqlalchemy from 1.3.24 to 2.0.52 - #2989
Open
dependabot[bot] wants to merge 1 commit into
Open
Community-TC Integration / bugbot tests
failed
Aug 17, 2026 in 1m 51s
Community-TC (pull_request)
bugbot tests
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-08-17T13:10:53.224Z
Resolved: 2026-08-17T13:12:44.623Z
Task Execution Time: 1 minute, 51 seconds, 399 milliseconds
Task Status: failed
Reason Resolved: failed
TaskId: HGQVeDNTSoObyusV6rvJ4w
RunId: 0
Artifacts
- public/logs/live_backing.log (32.9 KB)
- public/logs/live.log
[taskcluster 2026-08-17T13:10:53.284Z] Worker Type (proj-relman/ci) settings:
[taskcluster 2026-08-17T13:10:53.284Z] {
[taskcluster 2026-08-17T13:10:53.284Z] "generic-worker": {
[taskcluster 2026-08-17T13:10:53.284Z] "config": {
[taskcluster 2026-08-17T13:10:53.284Z] "headlessTasks": false
[taskcluster 2026-08-17T13:10:53.284Z] },
[taskcluster 2026-08-17T13:10:53.284Z] "engine": "multiuser",
[taskcluster 2026-08-17T13:10:53.284Z] "go-arch": "amd64",
[taskcluster 2026-08-17T13:10:53.284Z] "go-os": "linux",
[taskcluster 2026-08-17T13:10:53.284Z] "go-version": "go1.26.2",
[taskcluster 2026-08-17T13:10:53.284Z] "release": "https://github.com/taskcluster/taskcluster/releases/tag/v99.1.0",
[taskcluster 2026-08-17T13:10:53.284Z] "revision": "c76d61efe4bdc1a05bcec848739cd41ebf061f01",
[taskcluster 2026-08-17T13:10:53.284Z] "source": "https://github.com/taskcluster/taskcluster/commits/c76d61efe4bdc1a05bcec848739cd41ebf061f01",
[taskcluster 2026-08-17T13:10:53.284Z] "version": "99.1.0"
[taskcluster 2026-08-17T13:10:53.284Z] },
[taskcluster 2026-08-17T13:10:53.284Z] "image": "projects/community-tc-workers/global/images/generic-worker-ubuntu-24-04-aaynirqnxlbwcojgnbeo",
[taskcluster 2026-08-17T13:10:53.284Z] "instance-id": "7868651973609699640",
[taskcluster 2026-08-17T13:10:53.284Z] "instance-type": "projects/757942385826/machineTypes/n2-standard-4",
[taskcluster 2026-08-17T13:10:53.284Z] "local-ipv4": "10.150.0.13",
[taskcluster 2026-08-17T13:10:53.284Z] "machine-setup": {
...(144 lines hidden)...
tests/test_bzcleaner.py::test_inactive_needinfo_description PASSED [ 56%]
tests/test_bzcleaner.py::test_inactive_needinfo_name PASSED [ 57%]
tests/test_bzcleaner.py::test_inactive_needinfo_template PASSED [ 58%]
tests/test_bzcleaner.py::test_inactive_needinfo_subject PASSED [ 60%]
tests/test_bzcleaner.py::test_inactive_needinfo_get_bz_params PASSED [ 61%]
tests/test_bzcleaner.py::test_inactive_needinfo_ignore_date PASSED [ 62%]
tests/test_cache.py::test_cache PASSED [ 64%]
tests/test_calendar.py::test_dom_lws_calendar PASSED [ 65%]
tests/test_calendar.py::test_performance_tools_calendar PASSED [ 66%]
tests/test_calendar.py::test_recurring_event PASSED [ 68%]
tests/test_db.py::test_bugchange FAILED [ 69%]
tests/test_db.py::test_email FAILED [ 70%]
tests/test_duplicate_copy_metadata.py::test_get_previously_copied_fields PASSED [ 72%]
tests/test_email_no_assignee.py::test_nobody PASSED [ 73%]
tests/test_escalation.py::test_str PASSED [ 74%]
tests/test_escalation.py::test_escalation PASSED [ 76%]
tests/test_mail.py::test_replaceUnicode PASSED [ 77%]
tests/test_multi_autofixers.py::test_merge_changes PASSED [ 78%]
tests/test_multi_autofixers.py::test_missing_merge_function PASSED [ 80%]
tests/test_multi_autofixers.py::test_unsupported_rule_in_merge_function PASSED [ 81%]
tests/test_new_utils.py::test_get_signatures PASSED [ 82%]
tests/test_new_utils.py::test_add_signatures PASSED [ 84%]
tests/test_regression_set_status_flags.py::test_status_changes PASSED [ 85%]
tests/test_round_robin.py::test_get PASSED [ 86%]
tests/test_round_robin.py::test_get_ics PASSED [ 88%]
tests/test_round_robin.py::test_get_who_to_nag PASSED [ 89%]
tests/test_severity.py::test_logical_comparison PASSED [ 90%]
tests/test_topcrash.py::test_get_blocked_signatures PASSED [ 92%]
tests/test_user_activity.py::test_check_users PASSED [ 93%]
tests/test_user_activity.py::test_check_users_keep_active PASSED [ 94%]
tests/test_user_activity.py::test_check_users_ignore_bots PASSED [ 96%]
tests/test_user_activity.py::test_get_bz_users_with_status PASSED [ 97%]
tests/test_user_activity.py::test_get_status_from_bz_user PASSED [ 98%]
tests/test_webcompat_priority.py::TestWebcompatPriority::test_logical_comparison PASSED [100%]
=================================== FAILURES ===================================
________________________________ test_bugchange ________________________________
def test_bugchange():
db.session.query(db.BugChange).delete()
db.session.commit()
with open("./tests/data/db_history.json", "r") as In:
HISTORY = json.load(In)["history"]
db.BugChange.import_from_dict(HISTORY)
data = db.BugChange.get()
data = list(data)
assert len(data) == len(HISTORY)
data = _by_rule(HISTORY)
for tool, info in data.items():
_data = db.BugChange.get(name=tool).order_by(db.BugChange.date.asc())
_data = list(_data)
assert len(_data) == len(info)
for expected, got in zip(info, _data):
assert expected["tool"] == got.tool.name
assert expected["bugid"] == got.bugid
assert expected["date"] == str(got.get_date())
got_extra = got.extra.extra if got.extra else ""
assert expected["extra"] == got_extra
> db.BugChange.add("A", 123, ts=123456789, extra="")
tests/test_db.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
bugbot/db.py:107: in add
check(BugChange.__tablename__)
bugbot/db.py:39: in check
if not engine.dialect.has_table(engine, table_name):
<string>:2: in has_table
???
.tox/py310/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py:90: in cache
return fn(self, con, *args, **kw)
.tox/py310/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/base.py:2325: in has_table
self._ensure_has_table_connection(connection)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x761ab404e890>
arg = Engine(sqlite:///db/autonag.sqlite)
def _ensure_has_table_connection(self, arg: Connection) -> None:
if not isinstance(arg, Connection):
> raise exc.ArgumentError(
"The argument passed to Dialect.has_table() should be a "
"%s, got %s. "
"Additionally, the Dialect.has_table() method is for "
"internal dialect "
"use only; please use "
"``inspect(some_engine).has_table(<tablename>>)`` "
"for public API use." % (Connection, type(arg))
)
E sqlalchemy.exc.ArgumentError: The argument passed to Dialect.has_table() should be a <class 'sqlalchemy.engine.base.Connection'>, got <class 'sqlalchemy.engine.base.Engine'>. Additionally, the Dialect.has_table() method is for internal dialect use only; please use ``inspect(some_engine).has_table(<tablename>>)`` for public API use.
.tox/py310/lib/python3.10/site-packages/sqlalchemy/engine/default.py:450: ArgumentError
__________________________________ test_email __________________________________
def test_email():
db.session.query(db.Email).delete()
db.session.commit()
with open("./tests/data/db_history.json", "r") as In:
EMAILS = json.load(In)["emails"]
db.Email.import_from_dict(EMAILS)
data = db.Email.get().order_by(db.Email.date.asc())
data = list(data)
assert len(data) == len(EMAILS)
for expected, got in zip(EMAILS, data):
assert expected["tool"] == got.tool.name
assert expected["user"] == got.user.email
assert expected["date"] == str(got.get_date())
got_res = "Success" if got.result != 0 else "Failure"
assert expected["result"] == got_res
got_extra = got.extra.extra if got.extra else ""
assert expected["extra"] == got_extra
> db.Email.add("I", ["J", "K"], "L", "Success", ts=123456789)
tests/test_db.py:99:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
bugbot/db.py:347: in add
check(Email.__tablename__)
bugbot/db.py:39: in check
if not engine.dialect.has_table(engine, table_name):
<string>:2: in has_table
???
.tox/py310/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py:90: in cache
return fn(self, con, *args, **kw)
.tox/py310/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/base.py:2325: in has_table
self._ensure_has_table_connection(connection)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x761ab404e890>
arg = Engine(sqlite:///db/autonag.sqlite)
def _ensure_has_table_connection(self, arg: Connection) -> None:
if not isinstance(arg, Connection):
> raise exc.ArgumentError(
"The argument passed to Dialect.has_table() should be a "
"%s, got %s. "
"Additionally, the Dialect.has_table() method is for "
"internal dialect "
"use only; please use "
"``inspect(some_engine).has_table(<tablename>>)`` "
"for public API use." % (Connection, type(arg))
)
E sqlalchemy.exc.ArgumentError: The argument passed to Dialect.has_table() should be a <class 'sqlalchemy.engine.base.Connection'>, got <class 'sqlalchemy.engine.base.Engine'>. Additionally, the Dialect.has_table() method is for internal dialect use only; please use ``inspect(some_engine).has_table(<tablename>>)`` for public API use.
.tox/py310/lib/python3.10/site-packages/sqlalchemy/engine/default.py:450: ArgumentError
=============================== warnings summary ===============================
bugbot/db.py:22
/bugbot/bugbot/db.py:22: MovedIn20Warning: The ``declarative_base()`` function is now available as sqlalchemy.orm.declarative_base(). (deprecated since: 2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9)
Base: Any = declarative_base()
.tox/py310/lib/python3.10/site-packages/google/api_core/_python_version_support.py:254
/bugbot/.tox/py310/lib/python3.10/site-packages/google/api_core/_python_version_support.py:254: FutureWarning: You are using a Python version (3.10.21) which Google will stop supporting in new releases of google.api_core once it reaches its end of life (2026-10-04). Please upgrade to the latest Python version, or at least Python 3.11, to continue receiving updates for google.api_core past that date.
warnings.warn(message, FutureWarning)
tests/test_db.py::test_bugchange
/bugbot/bugbot/db.py:259: SAWarning: Object of type <BugChange> not in session, add operation along 'Tool.bugchanges' will not proceed (This warning originated from the Session 'autoflush' process, which was invoked automatically in response to a user-initiated operation. Consider using ``no_autoflush`` context manager if this warning happened while initializing objects.)
session.query(Extra).filter(Extra.extra == extra).one()
tests/test_db.py::test_email
/bugbot/bugbot/db.py:224: SAWarning: Object of type <Email> not in session, add operation along 'Tool.emails' will not proceed (This warning originated from the Session 'autoflush' process, which was invoked automatically in response to a user-initiated operation. Consider using ``no_autoflush`` context manager if this warning happened while initializing objects.)
return session.query(User).filter(User.email == email).one()
tests/test_db.py::test_email
/bugbot/bugbot/db.py:259: SAWarning: Object of type <Email> not in session, add operation along 'User.mails' will not proceed (This warning originated from the Session 'autoflush' process, which was invoked automatically in response to a user-initiated operation. Consider using ``no_autoflush`` context manager if this warning happened while initializing objects.)
session.query(Extra).filter(Extra.extra == extra).one()
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_db.py::test_bugchange - sqlalchemy.exc.ArgumentError: The argument passed to Dialect.has_table() sh...
FAILED tests/test_db.py::test_email - sqlalchemy.exc.ArgumentError: The argument passed to Dialect.has_table() sh...
=================== 2 failed, 73 passed, 5 warnings in 8.00s ===================
py310: exit 1 (9.17 seconds) /bugbot> coverage run --branch --source /bugbot/bugbot -m pytest -v pid=907
py310: FAIL code 1 (27.33=setup[17.42]+cmd[0.64,0.10,9.17] seconds)
evaluation failed :( (27.36 seconds)
[taskcluster 2026-08-17T13:12:43.363Z] Exit Code: 1
[taskcluster 2026-08-17T13:12:43.363Z] User Time: 18.422ms
[taskcluster 2026-08-17T13:12:43.363Z] Kernel Time: 20.265ms
[taskcluster 2026-08-17T13:12:43.363Z] Wall Time: 1m31.750989355s
[taskcluster 2026-08-17T13:12:43.363Z] Average Available System Memory: 14.06 GiB
[taskcluster 2026-08-17T13:12:43.363Z] Average System Memory Used: 1.55 GiB
[taskcluster 2026-08-17T13:12:43.363Z] Peak System Memory Used: 1.75 GiB
[taskcluster 2026-08-17T13:12:43.363Z] Total System Memory: 15.61 GiB
[taskcluster 2026-08-17T13:12:43.363Z] Result: FAILED
[taskcluster 2026-08-17T13:12:43.363Z] === Task Finished ===
[taskcluster 2026-08-17T13:12:43.363Z] Task Duration: 1m31.751607846s
[taskcluster:error] exit status 1
Loading