Skip to content

client: fix warnings in tests#1498

Draft
jcristau wants to merge 1 commit into
mozilla-releng:masterfrom
jcristau:no-more-warnings
Draft

client: fix warnings in tests#1498
jcristau wants to merge 1 commit into
mozilla-releng:masterfrom
jcristau:no-more-warnings

client: fix some warnings when running tests

8866390
Select commit
Loading
Failed to load commit list.
firefoxci-taskcluster / tox-api-py313 succeeded Mar 5, 2026 in 4m 14s

FirefoxCI (pull_request)

test the tooltool api

Details

View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster

Task Status

Started: 2026-03-05T13:03:43.435Z
Resolved: 2026-03-05T13:04:46.508Z
Task Execution Time: 1 minute, 3 seconds, 73 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: Z9BdlcvpRWmz7yZhGOdijA
RunId: 0

Artifacts

- public/logs/live_backing.log
- public/logs/live.log


[taskcluster 2026-03-05T13:03:43.505Z] Worker Type (releng-t/linux-docker) settings:
[taskcluster 2026-03-05T13:03:43.505Z]   {
[taskcluster 2026-03-05T13:03:43.505Z]     "config": {
[taskcluster 2026-03-05T13:03:43.505Z]       "deploymentId": ""
[taskcluster 2026-03-05T13:03:43.505Z]     },
[taskcluster 2026-03-05T13:03:43.505Z]     "generic-worker": {
[taskcluster 2026-03-05T13:03:43.505Z]       "config": {
[taskcluster 2026-03-05T13:03:43.505Z]         "headlessTasks": true
[taskcluster 2026-03-05T13:03:43.505Z]       },
[taskcluster 2026-03-05T13:03:43.505Z]       "engine": "multiuser",
[taskcluster 2026-03-05T13:03:43.505Z]       "go-arch": "amd64",
[taskcluster 2026-03-05T13:03:43.505Z]       "go-os": "linux",
[taskcluster 2026-03-05T13:03:43.505Z]       "go-version": "go1.25.5",
[taskcluster 2026-03-05T13:03:43.505Z]       "release": "https://github.com/taskcluster/taskcluster/releases/tag/v95.1.3",
[taskcluster 2026-03-05T13:03:43.505Z]       "revision": "300ac23a15bb11e577f3a3d116a570fde948337e",
[taskcluster 2026-03-05T13:03:43.505Z]       "source": "https://github.com/taskcluster/taskcluster/commits/300ac23a15bb11e577f3a3d116a570fde948337e",
[taskcluster 2026-03-05T13:03:43.505Z]       "version": "95.1.3"
[taskcluster 2026-03-05T13:03:43.505Z]     },
[taskcluster 2026-03-05T13:03:43.505Z]     "image": "projects/taskcluster-imaging/global/images/gw-fxci-gcp-l1-2404-amd64-headless-googlecompute-2026-01-14",
[taskcluster 2026-03-05T13:03:43.505Z]     "instance-id": "4990564603009482808",

...(82 lines hidden)...

[task 2026-03-05T13:04:39.772+00:00] INFO  [alembic.runtime.migration] Running upgrade 8029026f4e23 -> 697dbab45f3f, Make releng_tooltool_files.size a BigInteger
[task 2026-03-05T13:04:39.780+00:00] tooltool_api.lib.db: Completed migrations (app='tooltool_api')
[task 2026-03-05T13:04:39.927+00:00] tests/test_api.py::test_upload_anon PASSED
[task 2026-03-05T13:04:39.930+00:00] tooltool_api.lib.flask: Loading custom configuration
[task 2026-03-05T13:04:39.933+00:00] tooltool_api.lib.db: Starting migrations (app='tooltool_api')
[task 2026-03-05T13:04:39.940+00:00] INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
[task 2026-03-05T13:04:39.940+00:00] INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
[task 2026-03-05T13:04:39.943+00:00] INFO  [alembic.runtime.migration] Running upgrade  -> 8029026f4e23, Initial migration
[task 2026-03-05T13:04:39.953+00:00] INFO  [alembic.runtime.migration] Running upgrade 8029026f4e23 -> 697dbab45f3f, Make releng_tooltool_files.size a BigInteger
[task 2026-03-05T13:04:39.961+00:00] tooltool_api.lib.db: Completed migrations (app='tooltool_api')
[task 2026-03-05T13:04:40.451+00:00] tests/test_api.py::test_with_scopes tooltool_api.lib.auth: Init user test/user@mozilla.com
[task 2026-03-05T13:04:40.578+00:00] tooltool_api.api: Generating signed S3 PUT URL to be688838ca for test/user@mozilla.com; expiring in 60s (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='upload' tooltool_batch_id=None)
[task 2026-03-05T13:04:40.728+00:00] tooltool_api.api: Generating signed S3 GET URL for be688838ca, expiring in 60s (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:40.733+00:00] tooltool_api.lib.auth: Checking permissions (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None permissions=['project:releng:services/tooltool/api/manage'])
[task 2026-03-05T13:04:40.736+00:00] tooltool_api.lib.auth: Checking permissions (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None permissions=['project:releng:services/tooltool/api/manage'])
[task 2026-03-05T13:04:40.738+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:40.740+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:40.741+00:00] tooltool_api.lib.auth: Validated permissions, processing api request (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:40.755+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:40.766+00:00] tooltool_api.api: Generating signed S3 GET URL for be688838ca, expiring in 60s (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:40.771+00:00] tooltool_api.lib.auth: Checking permissions (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None permissions=['project:releng:services/tooltool/api/manage'])
[task 2026-03-05T13:04:40.773+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:40.775+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:40.776+00:00] tooltool_api.lib.auth: Validated permissions, processing api request (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:40.807+00:00] PASSED
[task 2026-03-05T13:04:40.810+00:00] tooltool_api.lib.flask: Loading custom configuration
[task 2026-03-05T13:04:40.812+00:00] tooltool_api.lib.db: Starting migrations (app='tooltool_api')
[task 2026-03-05T13:04:40.818+00:00] INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
[task 2026-03-05T13:04:40.818+00:00] INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
[task 2026-03-05T13:04:40.822+00:00] INFO  [alembic.runtime.migration] Running upgrade  -> 8029026f4e23, Initial migration
[task 2026-03-05T13:04:40.833+00:00] INFO  [alembic.runtime.migration] Running upgrade 8029026f4e23 -> 697dbab45f3f, Make releng_tooltool_files.size a BigInteger
[task 2026-03-05T13:04:40.841+00:00] tooltool_api.lib.db: Completed migrations (app='tooltool_api')
[task 2026-03-05T13:04:40.987+00:00] tests/test_api.py::test_swagger PASSED
[task 2026-03-05T13:04:40.989+00:00] tooltool_api.lib.flask: Loading custom configuration
[task 2026-03-05T13:04:40.992+00:00] tooltool_api.lib.db: Starting migrations (app='tooltool_api')
[task 2026-03-05T13:04:40.998+00:00] INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
[task 2026-03-05T13:04:40.998+00:00] INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
[task 2026-03-05T13:04:41.002+00:00] INFO  [alembic.runtime.migration] Running upgrade  -> 8029026f4e23, Initial migration
[task 2026-03-05T13:04:41.011+00:00] INFO  [alembic.runtime.migration] Running upgrade 8029026f4e23 -> 697dbab45f3f, Make releng_tooltool_files.size a BigInteger
[task 2026-03-05T13:04:41.019+00:00] tooltool_api.lib.db: Completed migrations (app='tooltool_api')
[task 2026-03-05T13:04:41.157+00:00] tooltool_api.lib.dockerflow: Testing heartbeat of log extension
[task 2026-03-05T13:04:41.157+00:00] tooltool_api.lib.dockerflow: Testing heartbeat of api extension
[task 2026-03-05T13:04:41.157+00:00] tooltool_api.lib.dockerflow: Testing heartbeat of auth extension
[task 2026-03-05T13:04:41.159+00:00] tooltool_api.lib.dockerflow: Testing heartbeat of db extension
[task 2026-03-05T13:04:41.163+00:00] tests/test_api.py::test_heartbeat PASSED
[task 2026-03-05T13:04:41.165+00:00] tests/test_auth.py::test_anonymous PASSED
[task 2026-03-05T13:04:41.166+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.167+00:00] tests/test_auth.py::test_taskcluster_user PASSED
[task 2026-03-05T13:04:41.173+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.175+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.178+00:00] tests/test_auth.py::test_auth PASSED
[task 2026-03-05T13:04:41.180+00:00] tooltool_api.lib.auth: Checking permissions (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None permissions=[['project/test/A', 'project/test/B'], ['project/test-admin/*']])
[task 2026-03-05T13:04:41.182+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.184+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.184+00:00] tooltool_api.lib.auth: User test/user@mozilla.com misses some permissions: project/test/B OR project/test-admin/* (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.186+00:00] tests/test_auth.py::test_scopes_invalid PASSED
[task 2026-03-05T13:04:41.188+00:00] tooltool_api.lib.auth: Checking permissions (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None permissions=[['project/test/A', 'project/test/B'], ['project/test-admin/*']])
[task 2026-03-05T13:04:41.190+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.192+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.192+00:00] tooltool_api.lib.auth: Validated permissions, processing api request (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.194+00:00] tests/test_auth.py::test_scopes_user PASSED
[task 2026-03-05T13:04:41.196+00:00] tooltool_api.lib.auth: Checking permissions (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None permissions=[['project/test/A', 'project/test/B'], ['project/test-admin/*']])
[task 2026-03-05T13:04:41.198+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.200+00:00] tooltool_api.lib.auth: Init user test/user@mozilla.com (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.200+00:00] tooltool_api.lib.auth: Validated permissions, processing api request (tooltool_sha512='be688838ca8686e5c90689bf2ab585cef1137c999b48c70b92f67a5c34dc15697b5d11c982ed6d71be1e1e7f7b4e0733884aa97c3f7a339a8ed03577cf74be09' tooltool_operation='download_file' tooltool_batch_id=None)
[task 2026-03-05T13:04:41.202+00:00] tests/test_auth.py::test_scopes_admin PASSED
[task 2026-03-05T13:04:41.204+00:00] conftest: Test
[task 2026-03-05T13:04:41.204+00:00] conftest: Test args (arg1='aaa')
[task 2026-03-05T13:04:41.205+00:00] tests/test_log.py::test_logger PASSED
[task 2026-03-05T13:04:41.207+00:00] tests/test_utils.py::test_now PASSED
[task 2026-03-05T13:04:41.209+00:00] tests/test_utils.py::test_keyname PASSED
[task 2026-03-05T13:04:41.455+00:00] tests/test_utils.py::test_is_valid_sha512 PASSED/builds/worker/checkouts/vcs/.tox/py313/lib/python3.13/site-packages/_pytest/unraisableexception.py:33: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f7915b33f10>
[task 2026-03-05T13:04:41.455+00:00]   gc.collect()
[task 2026-03-05T13:04:41.455+00:00] ResourceWarning: Enable tracemalloc to get the object allocation traceback
[task 2026-03-05T13:04:41.459+00:00] /builds/worker/checkouts/vcs/.tox/py313/lib/python3.13/site-packages/_pytest/unraisableexception.py:33: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f7913e88400>
[task 2026-03-05T13:04:41.459+00:00]   gc.collect()
[task 2026-03-05T13:04:41.459+00:00] ResourceWarning: Enable tracemalloc to get the object allocation traceback
[task 2026-03-05T13:04:41.589+00:00] /builds/worker/checkouts/vcs/.tox/py313/lib/python3.13/site-packages/_pytest/unraisableexception.py:33: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f7915b30220>
[task 2026-03-05T13:04:41.589+00:00]   gc.collect()
[task 2026-03-05T13:04:41.589+00:00] ResourceWarning: Enable tracemalloc to get the object allocation traceback
[task 2026-03-05T13:04:41.589+00:00] /builds/worker/checkouts/vcs/.tox/py313/lib/python3.13/site-packages/_pytest/unraisableexception.py:33: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f791588f790>
[task 2026-03-05T13:04:41.589+00:00]   gc.collect()
[task 2026-03-05T13:04:41.589+00:00] ResourceWarning: Enable tracemalloc to get the object allocation traceback
[task 2026-03-05T13:04:41.589+00:00] /builds/worker/checkouts/vcs/.tox/py313/lib/python3.13/site-packages/_pytest/unraisableexception.py:33: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f79158fc9a0>
[task 2026-03-05T13:04:41.589+00:00]   gc.collect()
[task 2026-03-05T13:04:41.589+00:00] ResourceWarning: Enable tracemalloc to get the object allocation traceback
[task 2026-03-05T13:04:41.848+00:00] 
[task 2026-03-05T13:04:41.848+00:00] 
[task 2026-03-05T13:04:41.848+00:00] =============================== warnings summary ===============================
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:41.848+00:00]   /builds/worker/checkouts/vcs/.tox/py313/lib/python3.13/site-packages/connexion/decorators/validation.py:16: DeprecationWarning: Accessing jsonschema.draft4_format_checker is deprecated and will be removed in a future release. Instead, use the FORMAT_CHECKER attribute on the corresponding Validator.
[task 2026-03-05T13:04:41.848+00:00]     from jsonschema import Draft4Validator, ValidationError, draft4_format_checker
[task 2026-03-05T13:04:41.848+00:00] 
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:41.848+00:00]   /builds/worker/checkouts/vcs/.tox/py313/lib/python3.13/site-packages/connexion/json_schema.py:16: DeprecationWarning: jsonschema.RefResolver is deprecated as of v4.18.0, in favor of the https://github.com/python-jsonschema/referencing library, which provides more compliant referencing behavior as well as more flexible APIs for customization. A future release will remove RefResolver. Please file a feature request (on referencing) if you are missing an API for the kind of customization you need.
[task 2026-03-05T13:04:41.848+00:00]     from jsonschema import Draft4Validator, RefResolver
[task 2026-03-05T13:04:41.848+00:00] 
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:41.848+00:00]   /builds/worker/checkouts/vcs/.tox/py313/lib/python3.13/site-packages/connexion/json_schema.py:17: DeprecationWarning: jsonschema.exceptions.RefResolutionError is deprecated as of version 4.18.0. If you wish to catch potential reference resolution errors, directly catch referencing.exceptions.Unresolvable.
[task 2026-03-05T13:04:41.848+00:00]     from jsonschema.exceptions import RefResolutionError, ValidationError  # noqa
[task 2026-03-05T13:04:41.848+00:00] 
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_upload_anon
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_with_scopes
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_swagger
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py::test_heartbeat
[task 2026-03-05T13:04:41.848+00:00] tests/test_log.py::test_logger
[task 2026-03-05T13:04:41.848+00:00]   /builds/worker/checkouts/vcs/api/src/tooltool_api/lib/log.py:87: DeprecationWarning: `structlog.threadlocal` is deprecated, please use `structlog.contextvars` instead.
[task 2026-03-05T13:04:41.848+00:00]     context_class=structlog.threadlocal.wrap_dict(dict),
[task 2026-03-05T13:04:41.848+00:00] 
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py: 10 warnings
[task 2026-03-05T13:04:41.848+00:00]   /builds/worker/checkouts/vcs/api/src/migrations/env.py:20: DeprecationWarning: 'get_engine' is deprecated and will be removed in Flask-SQLAlchemy 3.1. Use 'engine' or 'engines[key]' instead.
[task 2026-03-05T13:04:41.848+00:00]     return current_app.extensions["migrate"].db.get_engine()
[task 2026-03-05T13:04:41.848+00:00] 
[task 2026-03-05T13:04:41.848+00:00] tests/test_api.py: 10 warnings
[task 2026-03-05T13:04:41.848+00:00]   /builds/worker/checkouts/vcs/.tox/py313/lib/python3.13/site-packages/connexion/spec.py:52: DeprecationWarning: Passing a schema to Validator.iter_errors is deprecated and will be removed in a future release. Call validator.evolve(schema=new_schema).iter_errors(...) instead.
[task 2026-03-05T13:04:41.848+00:00]     for error in instance_validator.iter_errors(instance["default"], instance):
[task 2026-03-05T13:04:41.848+00:00] 
[task 2026-03-05T13:04:41.848+00:00] -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
[task 2026-03-05T13:04:41.848+00:00] ================================ tests coverage ================================
[task 2026-03-05T13:04:41.849+00:00] _______________ coverage: platform linux, python 3.13.12-final-0 _______________
[task 2026-03-05T13:04:41.849+00:00] 
[task 2026-03-05T13:04:41.849+00:00] Name                                 Stmts   Miss Branch BrPart  Cover   Missing
[task 2026-03-05T13:04:41.849+00:00] --------------------------------------------------------------------------------
[task 2026-03-05T13:04:41.849+00:00] src/tooltool_api/__init__.py            27      0      2      0   100%
[task 2026-03-05T13:04:41.849+00:00] src/tooltool_api/api.py                180     41     84     29    73%   28, 53, 56, 59, 67, 71, 94, 97, 101, 104-105, 107->111, 146, 152->160, 161-170, 185, 189, 198, 204, 209, 219, 228, 232, 244, 248, 262, 268-274, 278, 285, 290
[task 2026-03-05T13:04:41.849+00:00] src/tooltool_api/aws.py                 25      5      2      0    81%   34-42
[task 2026-03-05T13:04:41.849+00:00] src/tooltool_api/cli.py                137     74     30      8    45%   26-60, 68-69, 77-78, 83-84, 87-88, 108, 111-113, 119-121, 127-130, 137-141, 149-150, 163-171, 191-204, 211-218
[task 2026-03-05T13:04:41.849+00:00] src/tooltool_api/config.py               4      0      0      0   100%
[task 2026-03-05T13:04:41.849+00:00] src/tooltool_api/flask.py                2      2      0      0     0%   6-8
[task 2026-03-05T13:04:41.849+00:00] src/tooltool_api/lib/api.py             19      0      0      0   100%
[task 2026-03-05T13:04:41.849+00:00] src/tooltool_api/lib/auth.py           188     36     54     11    76%   59, 63->66, 89, 95, 98, 141-143, 197-199, 213-224, 234, 238, 242->244, 254-258, 266->exit, 273-280, 285, 296->exit, 301-303
[task 2026-03-05T13:04:41.849+00:00] src/tooltool_api/lib/db.py              71     30     12      0    52%   23-48, 57, 61, 65, 87-88, 115-117
[task 2026-03-05T13:04:41.850+00:00] src/tooltool_api/lib/dockerflow.py      41     16      8      3    61%   29-30, 34-42, 49, 61, 68-69, 74, 79
[task 2026-03-05T13:04:41.850+00:00] src/tooltool_api/lib/flask.py           48      7     18      5    82%   34-35, 37->41, 46, 56-58, 61, 72->77
[task 2026-03-05T13:04:41.850+00:00] src/tooltool_api/lib/log.py             49     11     18      6    69%   30->32, 46-55, 61, 64->68, 72, 82, 105
[task 2026-03-05T13:04:41.850+00:00] src/tooltool_api/lib/pulse.py           90     69     14      0    20%   27-81, 85-90, 97-109, 125-131, 134-146, 162-166
[task 2026-03-05T13:04:41.850+00:00] src/tooltool_api/models.py              46      1      2      0    98%   31
[task 2026-03-05T13:04:41.850+00:00] src/tooltool_api/utils.py                9      0      0      0   100%
[task 2026-03-05T13:04:41.850+00:00] src/tooltool_api/view.py                 4      1      0      0    75%   12
[task 2026-03-05T13:04:41.850+00:00] --------------------------------------------------------------------------------
[task 2026-03-05T13:04:41.850+00:00] TOTAL                                  940    293    244     62    66%
[task 2026-03-05T13:04:41.850+00:00] ======================= 15 passed, 32 warnings in 4.62s ========================
[task 2026-03-05T13:04:42.038+00:00] <sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7f7913e8b100>
[task 2026-03-05T13:04:42.269+00:00]   py313: OK (18.42=setup[10.60]+cmd[7.83] seconds)
[task 2026-03-05T13:04:42.269+00:00]   congratulations :) (18.48 seconds)
[task 2026-03-05T13:04:42.321+00:00] tooltool_api-py313: commands[1] /builds/worker/checkouts/vcs/api> tox -e codecov
[task 2026-03-05T13:04:42.686+00:00] codecov: venv> /builds/worker/checkouts/vcs/.tox/tooltool_api-py313/bin/uv venv -p /builds/worker/checkouts/vcs/.tox/tooltool_api-py313/bin/python3 --allow-existing '--prompt=api[codecov]' --python-preference system /builds/worker/checkouts/vcs/.tox/codecov
[task 2026-03-05T13:04:42.733+00:00] codecov: uv-sync> /builds/worker/checkouts/vcs/.tox/tooltool_api-py313/bin/uv sync --locked --python-preference system -p /builds/worker/checkouts/vcs/.tox/tooltool_api-py313/bin/python3
[task 2026-03-05T13:04:43.373+00:00] codecov: commands[0]> coverage xml
[task 2026-03-05T13:04:43.707+00:00] Wrote XML report to coverage.xml
[task 2026-03-05T13:04:43.747+00:00] codecov: commands[1]> sed -i -e 's|filename="|filename="api/|' coverage.xml
[task 2026-03-05T13:04:43.750+00:00] codecov: commands[2]> codecov --disable pycov --commit=8866390ccaa68f29b867bb105d3b07e8c405e8f4 --branch= --pr=1498
[task 2026-03-05T13:04:43.778+00:00] /builds/worker/checkouts/vcs/.tox/codecov/lib/python3.13/site-packages/codecov/__init__.py:167: SyntaxWarning: invalid escape sequence '\ '
[task 2026-03-05T13:04:43.778+00:00]   | |    / _ \ / _  |/ _ \/ __/ _ \ \ / /
[task 2026-03-05T13:04:44.466+00:00] 
[task 2026-03-05T13:04:44.466+00:00]       _____          _
[task 2026-03-05T13:04:44.466+00:00]      / ____|        | |
[task 2026-03-05T13:04:44.466+00:00]     | |     ___   __| | ___  ___ _____   __
[task 2026-03-05T13:04:44.466+00:00]     | |    / _ \ / _  |/ _ \/ __/ _ \ \ / /
[task 2026-03-05T13:04:44.466+00:00]     | |___| (_) | (_| |  __/ (_| (_) \ V /
[task 2026-03-05T13:04:44.466+00:00]      \_____\___/ \____|\___|\___\___/ \_/
[task 2026-03-05T13:04:44.466+00:00]                                     v2.1.13
[task 2026-03-05T13:04:44.466+00:00] 
[task 2026-03-05T13:04:44.466+00:00] ==> Detecting CI provider
[task 2026-03-05T13:04:44.466+00:00]   -> Got branch from git/hg
[task 2026-03-05T13:04:44.466+00:00]   -> Got sha from git/hg
[task 2026-03-05T13:04:44.466+00:00] ==> Preparing upload
[task 2026-03-05T13:04:44.466+00:00] ==> Processing gcov (disable by -X gcov)
[task 2026-03-05T13:04:44.466+00:00] ==> Collecting reports
[task 2026-03-05T13:04:44.466+00:00]     + /builds/worker/checkouts/vcs/api/coverage.xml bytes=44386
[task 2026-03-05T13:04:44.466+00:00] ==> Uploading
[task 2026-03-05T13:04:44.466+00:00]     .url https://codecov.io
[task 2026-03-05T13:04:44.466+00:00]     .query commit=8866390ccaa68f29b867bb105d3b07e8c405e8f4&branch=no-more-warnings&pr=1498&token=<secret>&package=py2.1.13
[task 2026-03-05T13:04:44.466+00:00]     Gzipping contents..
[task 2026-03-05T13:04:44.466+00:00]     Compressed contents to 3945 bytes
[task 2026-03-05T13:04:44.466+00:00]     Pinging Codecov...
[task 2026-03-05T13:04:44.466+00:00]     Uploading to S3...
[task 2026-03-05T13:04:44.466+00:00]     Uploading to S3 took 0:00:00.262620
[task 2026-03-05T13:04:44.466+00:00]     https://app.codecov.io/github/mozilla-releng/tooltool/commit/8866390ccaa68f29b867bb105d3b07e8c405e8f4
[task 2026-03-05T13:04:44.495+00:00]   codecov: OK (1.81=setup[0.69]+cmd[0.37,0.00,0.74] seconds)
[task 2026-03-05T13:04:44.496+00:00]   congratulations :) (1.84 seconds)
[task 2026-03-05T13:04:44.544+00:00]   tooltool_api-py313: OK (22.01=setup[0.69]+cmd[19.09,2.22] seconds)
[task 2026-03-05T13:04:44.544+00:00]   congratulations :) (22.04 seconds)
[taskcluster 2026-03-05T13:04:45.860Z]                        Exit Code: 0
[taskcluster 2026-03-05T13:04:45.860Z]                        User Time: 18.076ms
[taskcluster 2026-03-05T13:04:45.860Z]                      Kernel Time: 17.071ms
[taskcluster 2026-03-05T13:04:45.860Z]                        Wall Time: 28.342864088s
[taskcluster 2026-03-05T13:04:45.860Z]  Average Available System Memory: 14.78 GiB
[taskcluster 2026-03-05T13:04:45.860Z]       Average System Memory Used: 853.61 MiB
[taskcluster 2026-03-05T13:04:45.860Z]          Peak System Memory Used: 973.75 MiB
[taskcluster 2026-03-05T13:04:45.860Z]              Total System Memory: 15.62 GiB
[taskcluster 2026-03-05T13:04:45.860Z]                           Result: SUCCEEDED
[taskcluster 2026-03-05T13:04:45.860Z] === Task Finished ===
[taskcluster 2026-03-05T13:04:45.861Z] Task Duration: 28.343502381s
[taskcluster 2026-03-05T13:04:45.957Z] [mounts] Preserving cache: Moving "/home/task_177271582281977/cache0" to "/home/generic-worker/caches/B9fZpOAOQz-6u7h_Clmu5Q"