client: fix warnings in tests#1498
Draft
jcristau wants to merge 1 commit into
Draft
firefoxci-taskcluster / tox-api-py314
succeeded
Mar 5, 2026 in 4m 5s
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:41.047Z
Resolved: 2026-03-05T13:04:37.212Z
Task Execution Time: 56 seconds, 165 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: L1YaDQXyR3OVdN6eOI0gnA
RunId: 0
Artifacts
- public/logs/live_backing.log
- public/logs/live.log
[taskcluster 2026-03-05T13:03:41.096Z] Worker Type (releng-t/linux-docker) settings:
[taskcluster 2026-03-05T13:03:41.096Z] {
[taskcluster 2026-03-05T13:03:41.096Z] "config": {
[taskcluster 2026-03-05T13:03:41.096Z] "deploymentId": ""
[taskcluster 2026-03-05T13:03:41.096Z] },
[taskcluster 2026-03-05T13:03:41.096Z] "generic-worker": {
[taskcluster 2026-03-05T13:03:41.096Z] "config": {
[taskcluster 2026-03-05T13:03:41.096Z] "headlessTasks": true
[taskcluster 2026-03-05T13:03:41.096Z] },
[taskcluster 2026-03-05T13:03:41.096Z] "engine": "multiuser",
[taskcluster 2026-03-05T13:03:41.096Z] "go-arch": "amd64",
[taskcluster 2026-03-05T13:03:41.096Z] "go-os": "linux",
[taskcluster 2026-03-05T13:03:41.096Z] "go-version": "go1.25.5",
[taskcluster 2026-03-05T13:03:41.096Z] "release": "https://github.com/taskcluster/taskcluster/releases/tag/v95.1.3",
[taskcluster 2026-03-05T13:03:41.096Z] "revision": "300ac23a15bb11e577f3a3d116a570fde948337e",
[taskcluster 2026-03-05T13:03:41.096Z] "source": "https://github.com/taskcluster/taskcluster/commits/300ac23a15bb11e577f3a3d116a570fde948337e",
[taskcluster 2026-03-05T13:03:41.096Z] "version": "95.1.3"
[taskcluster 2026-03-05T13:03:41.096Z] },
[taskcluster 2026-03-05T13:03:41.096Z] "image": "projects/taskcluster-imaging/global/images/gw-fxci-gcp-l1-2404-amd64-headless-googlecompute-2026-01-14",
[taskcluster 2026-03-05T13:03:41.096Z] "instance-id": "5862130565356240952",
...(90 lines hidden)...
[task 2026-03-05T13:04:31.048+00:00] INFO [alembic.runtime.migration] Running upgrade 8029026f4e23 -> 697dbab45f3f, Make releng_tooltool_files.size a BigInteger
[task 2026-03-05T13:04:31.052+00:00] tooltool_api.lib.db: Completed migrations (app='tooltool_api')
[task 2026-03-05T13:04:31.427+00:00] tests/test_api.py::test_with_scopes tooltool_api.lib.auth: Init user test/user@mozilla.com
[task 2026-03-05T13:04:31.514+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:31.609+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:31.612+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:31.616+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:31.617+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:31.618+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:31.618+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:31.628+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:31.633+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:31.635+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:31.636+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:31.637+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:31.637+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:31.652+00:00] PASSED
[task 2026-03-05T13:04:31.654+00:00] tooltool_api.lib.flask: Loading custom configuration
[task 2026-03-05T13:04:31.655+00:00] tooltool_api.lib.db: Starting migrations (app='tooltool_api')
[task 2026-03-05T13:04:31.658+00:00] INFO [alembic.runtime.migration] Context impl SQLiteImpl.
[task 2026-03-05T13:04:31.658+00:00] INFO [alembic.runtime.migration] Will assume non-transactional DDL.
[task 2026-03-05T13:04:31.660+00:00] INFO [alembic.runtime.migration] Running upgrade -> 8029026f4e23, Initial migration
[task 2026-03-05T13:04:31.665+00:00] INFO [alembic.runtime.migration] Running upgrade 8029026f4e23 -> 697dbab45f3f, Make releng_tooltool_files.size a BigInteger
[task 2026-03-05T13:04:31.669+00:00] tooltool_api.lib.db: Completed migrations (app='tooltool_api')
[task 2026-03-05T13:04:31.727+00:00] tests/test_api.py::test_swagger PASSED
[task 2026-03-05T13:04:31.728+00:00] tooltool_api.lib.flask: Loading custom configuration
[task 2026-03-05T13:04:31.729+00:00] tooltool_api.lib.db: Starting migrations (app='tooltool_api')
[task 2026-03-05T13:04:31.732+00:00] INFO [alembic.runtime.migration] Context impl SQLiteImpl.
[task 2026-03-05T13:04:31.733+00:00] INFO [alembic.runtime.migration] Will assume non-transactional DDL.
[task 2026-03-05T13:04:31.735+00:00] INFO [alembic.runtime.migration] Running upgrade -> 8029026f4e23, Initial migration
[task 2026-03-05T13:04:31.740+00:00] INFO [alembic.runtime.migration] Running upgrade 8029026f4e23 -> 697dbab45f3f, Make releng_tooltool_files.size a BigInteger
[task 2026-03-05T13:04:31.744+00:00] tooltool_api.lib.db: Completed migrations (app='tooltool_api')
[task 2026-03-05T13:04:31.801+00:00] tooltool_api.lib.dockerflow: Testing heartbeat of log extension
[task 2026-03-05T13:04:31.802+00:00] tooltool_api.lib.dockerflow: Testing heartbeat of api extension
[task 2026-03-05T13:04:31.802+00:00] tooltool_api.lib.dockerflow: Testing heartbeat of auth extension
[task 2026-03-05T13:04:31.804+00:00] tooltool_api.lib.dockerflow: Testing heartbeat of db extension
[task 2026-03-05T13:04:31.806+00:00] tests/test_api.py::test_heartbeat PASSED
[task 2026-03-05T13:04:31.807+00:00] tests/test_auth.py::test_anonymous PASSED
[task 2026-03-05T13:04:31.808+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:31.809+00:00] tests/test_auth.py::test_taskcluster_user PASSED
[task 2026-03-05T13:04:31.811+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:31.812+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:31.813+00:00] tests/test_auth.py::test_auth PASSED
[task 2026-03-05T13:04:31.814+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:31.815+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:31.816+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:31.816+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:31.817+00:00] tests/test_auth.py::test_scopes_invalid PASSED
[task 2026-03-05T13:04:31.818+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:31.818+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:31.819+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:31.820+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:31.820+00:00] tests/test_auth.py::test_scopes_user PASSED
[task 2026-03-05T13:04:31.821+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:31.822+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:31.823+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:31.823+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:31.824+00:00] tests/test_auth.py::test_scopes_admin PASSED
[task 2026-03-05T13:04:31.824+00:00] conftest: Test
[task 2026-03-05T13:04:31.825+00:00] conftest: Test args (arg1='aaa')
[task 2026-03-05T13:04:31.825+00:00] tests/test_log.py::test_logger PASSED
[task 2026-03-05T13:04:31.826+00:00] tests/test_utils.py::test_now PASSED
[task 2026-03-05T13:04:31.827+00:00] tests/test_utils.py::test_keyname PASSED
[task 2026-03-05T13:04:32.064+00:00] tests/test_utils.py::test_is_valid_sha512 PASSED/builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/site-packages/_pytest/unraisableexception.py:33: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7fc76e1c4310>
[task 2026-03-05T13:04:32.065+00:00] gc.collect()
[task 2026-03-05T13:04:32.065+00:00] ResourceWarning: Enable tracemalloc to get the object allocation traceback
[task 2026-03-05T13:04:32.202+00:00] /builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/site-packages/_pytest/unraisableexception.py:33: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7fc76e341120>
[task 2026-03-05T13:04:32.202+00:00] gc.collect()
[task 2026-03-05T13:04:32.202+00:00] ResourceWarning: Enable tracemalloc to get the object allocation traceback
[task 2026-03-05T13:04:32.202+00:00] /builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/site-packages/_pytest/unraisableexception.py:33: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7fc76dfeba60>
[task 2026-03-05T13:04:32.203+00:00] gc.collect()
[task 2026-03-05T13:04:32.203+00:00] ResourceWarning: Enable tracemalloc to get the object allocation traceback
[task 2026-03-05T13:04:32.203+00:00] /builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/site-packages/_pytest/unraisableexception.py:33: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7fc76e1c46d0>
[task 2026-03-05T13:04:32.203+00:00] gc.collect()
[task 2026-03-05T13:04:32.203+00:00] ResourceWarning: Enable tracemalloc to get the object allocation traceback
[task 2026-03-05T13:04:32.203+00:00] /builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/site-packages/_pytest/unraisableexception.py:33: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7fc76df0e110>
[task 2026-03-05T13:04:32.203+00:00] gc.collect()
[task 2026-03-05T13:04:32.203+00:00] ResourceWarning: Enable tracemalloc to get the object allocation traceback
[task 2026-03-05T13:04:32.501+00:00]
[task 2026-03-05T13:04:32.501+00:00]
[task 2026-03-05T13:04:32.501+00:00] =============================== warnings summary ===============================
[task 2026-03-05T13:04:32.501+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:32.501+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:32.501+00:00] /builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/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:32.501+00:00] from jsonschema import Draft4Validator, ValidationError, draft4_format_checker
[task 2026-03-05T13:04:32.501+00:00]
[task 2026-03-05T13:04:32.501+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:32.501+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:32.501+00:00] /builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/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:32.501+00:00] from jsonschema import Draft4Validator, RefResolver
[task 2026-03-05T13:04:32.502+00:00]
[task 2026-03-05T13:04:32.502+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:32.502+00:00] /builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/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:32.503+00:00] from jsonschema.exceptions import RefResolutionError, ValidationError # noqa
[task 2026-03-05T13:04:32.503+00:00]
[task 2026-03-05T13:04:32.503+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:32.503+00:00] tests/test_api.py::test_no_uploads
[task 2026-03-05T13:04:32.503+00:00] tests/test_api.py::test_upload_anon
[task 2026-03-05T13:04:32.503+00:00] tests/test_api.py::test_with_scopes
[task 2026-03-05T13:04:32.503+00:00] tests/test_api.py::test_swagger
[task 2026-03-05T13:04:32.503+00:00] tests/test_api.py::test_heartbeat
[task 2026-03-05T13:04:32.503+00:00] tests/test_log.py::test_logger
[task 2026-03-05T13:04:32.504+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:32.504+00:00] context_class=structlog.threadlocal.wrap_dict(dict),
[task 2026-03-05T13:04:32.504+00:00]
[task 2026-03-05T13:04:32.504+00:00] tests/test_api.py: 10 warnings
[task 2026-03-05T13:04:32.504+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:32.504+00:00] return current_app.extensions["migrate"].db.get_engine()
[task 2026-03-05T13:04:32.504+00:00]
[task 2026-03-05T13:04:32.504+00:00] tests/test_api.py: 10 warnings
[task 2026-03-05T13:04:32.504+00:00] /builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/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:32.504+00:00] for error in instance_validator.iter_errors(instance["default"], instance):
[task 2026-03-05T13:04:32.504+00:00]
[task 2026-03-05T13:04:32.504+00:00] tests/test_api.py: 180 warnings
[task 2026-03-05T13:04:32.505+00:00] /builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/site-packages/connexion/utils.py:196: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead
[task 2026-03-05T13:04:32.505+00:00] iscorofunc = asyncio.iscoroutinefunction(func)
[task 2026-03-05T13:04:32.505+00:00]
[task 2026-03-05T13:04:32.505+00:00] tests/test_api.py: 240 warnings
[task 2026-03-05T13:04:32.505+00:00] /builds/worker/checkouts/vcs/.tox/py314/lib/python3.14/site-packages/connexion/utils.py:199: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead
[task 2026-03-05T13:04:32.505+00:00] iscorofunc = asyncio.iscoroutinefunction(func)
[task 2026-03-05T13:04:32.505+00:00]
[task 2026-03-05T13:04:32.505+00:00] -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
[task 2026-03-05T13:04:32.505+00:00] ================================ tests coverage ================================
[task 2026-03-05T13:04:32.505+00:00] _______________ coverage: platform linux, python 3.14.3-final-0 ________________
[task 2026-03-05T13:04:32.505+00:00]
[task 2026-03-05T13:04:32.505+00:00] Name Stmts Miss Branch BrPart Cover Missing
[task 2026-03-05T13:04:32.505+00:00] --------------------------------------------------------------------------------
[task 2026-03-05T13:04:32.505+00:00] src/tooltool_api/__init__.py 27 0 2 0 100%
[task 2026-03-05T13:04:32.505+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:32.505+00:00] src/tooltool_api/aws.py 25 5 2 0 81% 34-42
[task 2026-03-05T13:04:32.505+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:32.505+00:00] src/tooltool_api/config.py 4 0 0 0 100%
[task 2026-03-05T13:04:32.506+00:00] src/tooltool_api/flask.py 2 2 0 0 0% 6-8
[task 2026-03-05T13:04:32.506+00:00] src/tooltool_api/lib/api.py 19 0 0 0 100%
[task 2026-03-05T13:04:32.506+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:32.506+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:32.506+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:32.506+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:32.506+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:32.506+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:32.506+00:00] src/tooltool_api/models.py 46 1 2 0 98% 31
[task 2026-03-05T13:04:32.506+00:00] src/tooltool_api/utils.py 9 0 0 0 100%
[task 2026-03-05T13:04:32.506+00:00] src/tooltool_api/view.py 4 1 0 0 75% 12
[task 2026-03-05T13:04:32.506+00:00] --------------------------------------------------------------------------------
[task 2026-03-05T13:04:32.506+00:00] TOTAL 940 293 244 62 66%
[task 2026-03-05T13:04:32.506+00:00] ======================= 15 passed, 452 warnings in 3.43s =======================
[task 2026-03-05T13:04:32.716+00:00] <sys>:0: ResourceWarning: unclosed database in <sqlite3.Connection object at 0x7fc76bdb89a0>
[task 2026-03-05T13:04:32.998+00:00] py314: OK (16.19=setup[9.65]+cmd[6.54] seconds)
[task 2026-03-05T13:04:32.998+00:00] congratulations :) (16.24 seconds)
[task 2026-03-05T13:04:33.046+00:00] tooltool_api-py314: commands[1] /builds/worker/checkouts/vcs/api> tox -e codecov
[task 2026-03-05T13:04:33.386+00:00] codecov: venv> /builds/worker/checkouts/vcs/.tox/tooltool_api-py314/bin/uv venv -p /builds/worker/checkouts/vcs/.tox/tooltool_api-py314/bin/python3 --allow-existing '--prompt=api[codecov]' --python-preference system /builds/worker/checkouts/vcs/.tox/codecov
[task 2026-03-05T13:04:33.430+00:00] codecov: uv-sync> /builds/worker/checkouts/vcs/.tox/tooltool_api-py314/bin/uv sync --locked --python-preference system -p /builds/worker/checkouts/vcs/.tox/tooltool_api-py314/bin/python3
[task 2026-03-05T13:04:34.003+00:00] codecov: commands[0]> coverage xml
[task 2026-03-05T13:04:34.328+00:00] Wrote XML report to coverage.xml
[task 2026-03-05T13:04:34.359+00:00] codecov: commands[1]> sed -i -e 's|filename="|filename="api/|' coverage.xml
[task 2026-03-05T13:04:34.362+00:00] codecov: commands[2]> codecov --disable pycov --commit=8866390ccaa68f29b867bb105d3b07e8c405e8f4 --branch= --pr=1498
[task 2026-03-05T13:04:34.387+00:00] /builds/worker/checkouts/vcs/.tox/codecov/lib/python3.14/site-packages/codecov/__init__.py:167: SyntaxWarning: "\ " is an invalid escape sequence. Such sequences will not work in the future. Did you mean "\\ "? A raw string is also an option.
[task 2026-03-05T13:04:34.387+00:00] | | / _ \ / _ |/ _ \/ __/ _ \ \ / /
[task 2026-03-05T13:04:35.192+00:00]
[task 2026-03-05T13:04:35.193+00:00] _____ _
[task 2026-03-05T13:04:35.193+00:00] / ____| | |
[task 2026-03-05T13:04:35.193+00:00] | | ___ __| | ___ ___ _____ __
[task 2026-03-05T13:04:35.193+00:00] | | / _ \ / _ |/ _ \/ __/ _ \ \ / /
[task 2026-03-05T13:04:35.193+00:00] | |___| (_) | (_| | __/ (_| (_) \ V /
[task 2026-03-05T13:04:35.193+00:00] \_____\___/ \____|\___|\___\___/ \_/
[task 2026-03-05T13:04:35.193+00:00] v2.1.13
[task 2026-03-05T13:04:35.193+00:00]
[task 2026-03-05T13:04:35.193+00:00] ==> Detecting CI provider
[task 2026-03-05T13:04:35.193+00:00] -> Got branch from git/hg
[task 2026-03-05T13:04:35.193+00:00] -> Got sha from git/hg
[task 2026-03-05T13:04:35.193+00:00] ==> Preparing upload
[task 2026-03-05T13:04:35.193+00:00] ==> Processing gcov (disable by -X gcov)
[task 2026-03-05T13:04:35.193+00:00] ==> Collecting reports
[task 2026-03-05T13:04:35.193+00:00] + /builds/worker/checkouts/vcs/api/coverage.xml bytes=44386
[task 2026-03-05T13:04:35.193+00:00] ==> Uploading
[task 2026-03-05T13:04:35.193+00:00] .url https://codecov.io
[task 2026-03-05T13:04:35.193+00:00] .query commit=8866390ccaa68f29b867bb105d3b07e8c405e8f4&branch=no-more-warnings&pr=1498&token=<secret>&package=py2.1.13
[task 2026-03-05T13:04:35.193+00:00] Gzipping contents..
[task 2026-03-05T13:04:35.193+00:00] Compressed contents to 3946 bytes
[task 2026-03-05T13:04:35.193+00:00] Pinging Codecov...
[task 2026-03-05T13:04:35.193+00:00] Uploading to S3...
[task 2026-03-05T13:04:35.193+00:00] Uploading to S3 took 0:00:00.293440
[task 2026-03-05T13:04:35.193+00:00] https://app.codecov.io/github/mozilla-releng/tooltool/commit/8866390ccaa68f29b867bb105d3b07e8c405e8f4
[task 2026-03-05T13:04:35.219+00:00] codecov: OK (1.84=setup[0.62]+cmd[0.36,0.00,0.86] seconds)
[task 2026-03-05T13:04:35.219+00:00] congratulations :) (1.87 seconds)
[task 2026-03-05T13:04:35.262+00:00] tooltool_api-py314: OK (19.75=setup[0.69]+cmd[16.85,2.21] seconds)
[task 2026-03-05T13:04:35.262+00:00] congratulations :) (19.78 seconds)
[taskcluster 2026-03-05T13:04:36.620Z] Exit Code: 0
[taskcluster 2026-03-05T13:04:36.620Z] User Time: 16.805ms
[taskcluster 2026-03-05T13:04:36.620Z] Kernel Time: 18.097ms
[taskcluster 2026-03-05T13:04:36.620Z] Wall Time: 25.87132591s
[taskcluster 2026-03-05T13:04:36.620Z] Average Available System Memory: 14.76 GiB
[taskcluster 2026-03-05T13:04:36.620Z] Average System Memory Used: 876.47 MiB
[taskcluster 2026-03-05T13:04:36.620Z] Peak System Memory Used: 1021.45 MiB
[taskcluster 2026-03-05T13:04:36.620Z] Total System Memory: 15.62 GiB
[taskcluster 2026-03-05T13:04:36.620Z] Result: SUCCEEDED
[taskcluster 2026-03-05T13:04:36.620Z] === Task Finished ===
[taskcluster 2026-03-05T13:04:36.620Z] Task Duration: 25.871961745s
[taskcluster 2026-03-05T13:04:36.670Z] [mounts] Preserving cache: Moving "/home/task_177271582042650/cache0" to "/home/generic-worker/caches/B_6ZC4pWSeS_Xq9j8iBSkg"
Loading