Bug 1890753 - Add support for merge automation to shipit #1801
firefoxci-taskcluster / tests-api-python-312
succeeded
Dec 12, 2025 in 3m 14s
FirefoxCI (pull_request)
api-python tox-py312
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2025-12-12T15:58:08.225Z
Resolved: 2025-12-12T16:00:08.152Z
Task Execution Time: 1 minute, 59 seconds, 927 milliseconds
Task Status: completed
Reason Resolved: completed
RunId: 0
Artifacts
- public/coverage.xml
- public/logs/live_backing.log
- public/logs/live.log
[taskcluster 2025-12-12T15:58:08.253Z] Worker Type (releng-t/linux-docker) settings:
[taskcluster 2025-12-12T15:58:08.253Z] {
[taskcluster 2025-12-12T15:58:08.253Z] "config": {
[taskcluster 2025-12-12T15:58:08.253Z] "deploymentId": ""
[taskcluster 2025-12-12T15:58:08.253Z] },
[taskcluster 2025-12-12T15:58:08.253Z] "generic-worker": {
[taskcluster 2025-12-12T15:58:08.253Z] "config": {
[taskcluster 2025-12-12T15:58:08.253Z] "headlessTasks": true
[taskcluster 2025-12-12T15:58:08.253Z] },
[taskcluster 2025-12-12T15:58:08.253Z] "engine": "multiuser",
[taskcluster 2025-12-12T15:58:08.253Z] "go-arch": "amd64",
[taskcluster 2025-12-12T15:58:08.253Z] "go-os": "linux",
[taskcluster 2025-12-12T15:58:08.253Z] "go-version": "go1.25.4",
[taskcluster 2025-12-12T15:58:08.253Z] "release": "https://github.com/taskcluster/taskcluster/releases/tag/v93.1.2",
[taskcluster 2025-12-12T15:58:08.253Z] "revision": "e954a7555fe32f7de69247759908749d1d670889",
[taskcluster 2025-12-12T15:58:08.253Z] "source": "https://github.com/taskcluster/taskcluster/commits/e954a7555fe32f7de69247759908749d1d670889",
[taskcluster 2025-12-12T15:58:08.253Z] "version": "93.1.2"
[taskcluster 2025-12-12T15:58:08.253Z] },
[taskcluster 2025-12-12T15:58:08.253Z] "image": "projects/taskcluster-imaging/global/images/gw-fxci-gcp-l1-2404-amd64-headless-googlecompute-2025-11-14",
[taskcluster 2025-12-12T15:58:08.253Z] "instance-id": "4789284770327659988",
...(377 lines hidden)...
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_get_trust_domain[https://hg.mozilla.org/try-firefox-expectation1-gecko]
[task 2025-12-12T16:00:05.208+00:00] tests/test_release.py::test_is_rc[thunderbird-57.0-partial_updates13-True]
[task 2025-12-12T16:00:05.208+00:00] [gw0] [ 81%] PASSED tests/test_tasks.py::test_get_trust_domain[https://hg.mozilla.org/try-firefox-expectation1-gecko]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_get_trust_domain[https://hg.mozilla.org/releases/mozilla-beta-firefox-android-expectation2-gecko]
[task 2025-12-12T16:00:05.208+00:00] [gw1] [ 81%] PASSED tests/test_release.py::test_is_rc[thunderbird-57.0-partial_updates13-True]
[task 2025-12-12T16:00:05.208+00:00] tests/test_release.py::test_is_rc[firefox-115.8.0esr-None-False]
[task 2025-12-12T16:00:05.208+00:00] [gw0] [ 82%] PASSED tests/test_tasks.py::test_get_trust_domain[https://hg.mozilla.org/releases/mozilla-beta-firefox-android-expectation2-gecko]
[task 2025-12-12T16:00:05.208+00:00] [gw1] [ 83%] PASSED tests/test_release.py::test_is_rc[firefox-115.8.0esr-None-False]
[task 2025-12-12T16:00:05.208+00:00] tests/test_release.py::test_is_rc[firefox-70.0b4-partial_updates15-False]
[task 2025-12-12T16:00:05.208+00:00] [gw1] [ 83%] PASSED tests/test_release.py::test_is_rc[firefox-70.0b4-partial_updates15-False]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_get_trust_domain[https://hg.mozilla.org/mozilla-central-firefox-android-expectation3-None]
[task 2025-12-12T16:00:05.208+00:00] [gw0] [ 84%] PASSED tests/test_tasks.py::test_get_trust_domain[https://hg.mozilla.org/mozilla-central-firefox-android-expectation3-None]
[task 2025-12-12T16:00:05.208+00:00] tests/test_release.py::test_is_rc[devedition-70.0b4-partial_updates16-False]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_get_trust_domain[https://hg.mozilla.org/try-comm-central-firefox-android-expectation4-comm]
[task 2025-12-12T16:00:05.208+00:00] [gw1] [ 85%] PASSED tests/test_release.py::test_is_rc[devedition-70.0b4-partial_updates16-False]
[task 2025-12-12T16:00:05.208+00:00] [gw0] [ 85%] PASSED tests/test_tasks.py::test_get_trust_domain[https://hg.mozilla.org/try-comm-central-firefox-android-expectation4-comm]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_get_trust_domain[https://hg.mozilla.org/try-comm-central-thunderbird-expectation5-comm]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_get_trust_domain[-xpi-expectation6-xpi]
[task 2025-12-12T16:00:05.208+00:00] [gw0] [ 86%] PASSED tests/test_tasks.py::test_get_trust_domain[-xpi-expectation6-xpi]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_get_trust_domain[https://github.com/mozilla-mobile/firefox-android-firefox-android-expectation8-mobile]
[task 2025-12-12T16:00:05.208+00:00] [gw0] [ 87%] PASSED tests/test_tasks.py::test_get_trust_domain[https://github.com/mozilla-mobile/firefox-android-firefox-android-expectation8-mobile]
[task 2025-12-12T16:00:05.208+00:00] [gw1] [ 87%] PASSED tests/test_tasks.py::test_get_trust_domain[https://hg.mozilla.org/try-comm-central-thunderbird-expectation5-comm]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_get_trust_domain[https://github.com/mozilla-mobile/firefox-android-firefox-expectation7-mobile]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_get_trust_domain[https://github.com/mozilla-releng/staging-firefox-android-firefox-android-expectation9-mobile]
[task 2025-12-12T16:00:05.208+00:00] [gw1] [ 88%] PASSED tests/test_tasks.py::test_get_trust_domain[https://github.com/mozilla-mobile/firefox-android-firefox-expectation7-mobile]
[task 2025-12-12T16:00:05.208+00:00] [gw0] [ 89%] PASSED tests/test_tasks.py::test_get_trust_domain[https://github.com/mozilla-releng/staging-firefox-android-firefox-android-expectation9-mobile]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_get_trust_domain[https://github.com/mozilla-mobile/mozilla-vpn-client-firefox-android-expectation10-mozillavpn]
[task 2025-12-12T16:00:05.208+00:00] [gw1] [ 89%] PASSED tests/test_tasks.py::test_get_trust_domain[https://github.com/mozilla-mobile/mozilla-vpn-client-firefox-android-expectation10-mozillavpn]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_cancel_action_task_group[happy-path]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_cancel_action_task_group[artifact-not-found]
[task 2025-12-12T16:00:05.208+00:00] [gw0] [ 90%] PASSED tests/test_tasks.py::test_cancel_action_task_group[happy-path]
[task 2025-12-12T16:00:05.208+00:00] [gw1] [ 90%] PASSED tests/test_tasks.py::test_cancel_action_task_group[artifact-not-found]
[task 2025-12-12T16:00:05.208+00:00] tests/test_tasks.py::test_cancel_action_task_group[no-cancel-all-action]
[task 2025-12-12T16:00:05.208+00:00] tests/test_versions.py::test_versions[firefox-nightly-42.0.1]
[task 2025-12-12T16:00:05.208+00:00] [gw0] [ 91%] PASSED tests/test_tasks.py::test_cancel_action_task_group[no-cancel-all-action]
[task 2025-12-12T16:00:05.208+00:00] tests/test_versions.py::test_versions[foo-bar-77.7.7]
[task 2025-12-12T16:00:05.208+00:00] [gw2] [ 92%] PASSED tests/test_sentry.py::test_sentry_captures_only_5xx_errors[404-False]
[task 2025-12-12T16:00:05.208+00:00] tests/test_sentry.py::test_sentry_captures_only_5xx_errors[409-False]
[task 2025-12-12T16:00:05.208+00:00] [gw1] [ 92%] PASSED tests/test_versions.py::test_versions[firefox-nightly-42.0.1]
[task 2025-12-12T16:00:05.208+00:00] tests/test_versions.py::test_versions[bar-foo-None]
[task 2025-12-12T16:00:05.208+00:00] [gw0] [ 93%] PASSED tests/test_versions.py::test_versions[foo-bar-77.7.7]
[task 2025-12-12T16:00:05.208+00:00] tests/test_versions.py::test_versions[firefox-beta-None]
[task 2025-12-12T16:00:05.208+00:00] [gw2] [ 94%] PASSED tests/test_sentry.py::test_sentry_captures_only_5xx_errors[409-False]
[task 2025-12-12T16:00:05.208+00:00] tests/test_sentry.py::test_sentry_captures_only_5xx_errors[500-True]
[task 2025-12-12T16:00:05.208+00:00] [gw1] [ 94%] PASSED tests/test_versions.py::test_versions[bar-foo-None]
[task 2025-12-12T16:00:05.209+00:00] [gw0] [ 95%] PASSED tests/test_versions.py::test_versions[firefox-beta-None]
[task 2025-12-12T16:00:05.209+00:00] [gw2] [ 96%] PASSED tests/test_sentry.py::test_sentry_captures_only_5xx_errors[500-True]
[task 2025-12-12T16:00:05.209+00:00] [gw3] [ 96%] PASSED tests/test_product_details.py::test_rebuild
[task 2025-12-12T16:00:05.209+00:00] tests/test_publicapi.py::test_public_api_subset
[task 2025-12-12T16:00:05.209+00:00] [gw3] [ 97%] PASSED tests/test_publicapi.py::test_public_api_subset
[task 2025-12-12T16:00:05.209+00:00] tests/test_publicapi.py::test_good_version[release0-True]
[task 2025-12-12T16:00:05.209+00:00] [gw3] [ 98%] PASSED tests/test_publicapi.py::test_good_version[release0-True]
[task 2025-12-12T16:00:05.209+00:00] tests/test_publicapi.py::test_good_version[release1-True]
[task 2025-12-12T16:00:05.209+00:00] [gw3] [ 98%] PASSED tests/test_publicapi.py::test_good_version[release1-True]
[task 2025-12-12T16:00:05.209+00:00] tests/test_publicapi.py::test_good_version[release2-False]
[task 2025-12-12T16:00:05.209+00:00] [gw3] [ 99%] PASSED tests/test_publicapi.py::test_good_version[release2-False]
[task 2025-12-12T16:00:05.209+00:00] tests/test_publicapi.py::test_sort_releases_by_product_then_version[releases0-expected0]
[task 2025-12-12T16:00:05.209+00:00] [gw3] [100%] PASSED tests/test_publicapi.py::test_sort_releases_by_product_then_version[releases0-expected0]
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] =============================== warnings summary ===============================
[task 2025-12-12T16:00:05.209+00:00] .tox/py312/lib/python3.12/site-packages/connexion/json_schema.py:16: 10 warnings
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/.tox/py312/lib/python3.12/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 2025-12-12T16:00:05.209+00:00] from jsonschema import Draft4Validator, RefResolver
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] .tox/py312/lib/python3.12/site-packages/connexion/json_schema.py:17
[task 2025-12-12T16:00:05.209+00:00] .tox/py312/lib/python3.12/site-packages/connexion/json_schema.py:17
[task 2025-12-12T16:00:05.209+00:00] .tox/py312/lib/python3.12/site-packages/connexion/json_schema.py:17
[task 2025-12-12T16:00:05.209+00:00] .tox/py312/lib/python3.12/site-packages/connexion/json_schema.py:17
[task 2025-12-12T16:00:05.209+00:00] .tox/py312/lib/python3.12/site-packages/connexion/json_schema.py:17
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/.tox/py312/lib/python3.12/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 2025-12-12T16:00:05.209+00:00] from jsonschema.exceptions import RefResolutionError, ValidationError # noqa
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_submit_merge_automation_success
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_submit_merge_automation_invalid_inputs[thunderbird-main-to-beta-None]
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_submit_merge_automation_invalid_inputs[firefox-invalid-behavior-Behavior invalid-behavior not found for product: firefox]
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/src/shipit_api/admin/merge_automation.py:48: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
[task 2025-12-12T16:00:05.209+00:00] if not current_user.has_permissions(required_permission):
[task 2025-12-12T16:00:05.209+00:00] Enable tracemalloc to get traceback where the object was allocated.
[task 2025-12-12T16:00:05.209+00:00] See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_start_merge_automation_error_cases[None-TaskStatus.Running-400-Cannot start automation in Running status]
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_start_merge_automation_taskcluster_failure
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_start_merge_automation_success
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/src/shipit_api/admin/merge_automation.py:148: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
[task 2025-12-12T16:00:05.209+00:00] if not current_user.has_permissions(required_permission):
[task 2025-12-12T16:00:05.209+00:00] Enable tracemalloc to get traceback where the object was allocated.
[task 2025-12-12T16:00:05.209+00:00] See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_mark_merge_automation_completed
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_mark_merge_automation_completed_already_terminal[TaskStatus.Completed]
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_mark_merge_automation_completed_already_terminal[TaskStatus.Canceled]
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/src/shipit_api/admin/merge_automation.py:125: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
[task 2025-12-12T16:00:05.209+00:00] if not current_user.has_permissions(required_permission):
[task 2025-12-12T16:00:05.209+00:00] Enable tracemalloc to get traceback where the object was allocated.
[task 2025-12-12T16:00:05.209+00:00] See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_cancel_merge_automation_success
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_cancel_merge_automation_with_taskcluster_task
[task 2025-12-12T16:00:05.209+00:00] tests/test_merge_automation.py::test_cancel_merge_automation_failed_status
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/src/shipit_api/admin/merge_automation.py:102: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
[task 2025-12-12T16:00:05.209+00:00] if not current_user.has_permissions(required_permission):
[task 2025-12-12T16:00:05.209+00:00] Enable tracemalloc to get traceback where the object was allocated.
[task 2025-12-12T16:00:05.209+00:00] See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] tests/test_release.py: 24 warnings
[task 2025-12-12T16:00:05.209+00:00] tests/test_product_details.py: 3 warnings
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/.tox/py312/lib/python3.12/site-packages/sqlalchemy/sql/schema.py:3624: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
[task 2025-12-12T16:00:05.209+00:00] return util.wrap_callable(lambda ctx: fn(), fn) # type: ignore
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] tests/test_release.py::test_schedule_phase
[task 2025-12-12T16:00:05.209+00:00] tests/test_tasks.py::test_cancel_action_task_group[happy-path]
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/.tox/py312/lib/python3.12/site-packages/jsone/shared.py:97: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
[task 2025-12-12T16:00:05.209+00:00] reference = datetime.datetime.utcnow()
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] tests/test_release.py::test_schedule_phase
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/src/shipit_api/admin/api.py:157: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
[task 2025-12-12T16:00:05.209+00:00] completed = datetime.datetime.utcnow()
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] tests/test_publicapi.py: 15 warnings
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/src/cli_common/openapi_subset.py:33: DeprecationWarning: The dpath.util package is being deprecated. All util functions have been moved to dpath package top level.
[task 2025-12-12T16:00:05.209+00:00] source = dpath.util.get(full_api, section, separator=".")
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] tests/test_publicapi.py: 15 warnings
[task 2025-12-12T16:00:05.209+00:00] /builds/worker/checkouts/vcs/api/src/cli_common/openapi_subset.py:34: DeprecationWarning: The dpath.util package is being deprecated. All util functions have been moved to dpath package top level.
[task 2025-12-12T16:00:05.209+00:00] dpath.util.new(subset, section, source, separator=".")
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
[task 2025-12-12T16:00:05.209+00:00] ================================ tests coverage ================================
[task 2025-12-12T16:00:05.209+00:00] _______________ coverage: platform linux, python 3.12.8-final-0 ________________
[task 2025-12-12T16:00:05.209+00:00]
[task 2025-12-12T16:00:05.209+00:00] Name Stmts Miss Branch BrPart Cover Missing
[task 2025-12-12T16:00:05.209+00:00] --------------------------------------------------------------------------------------
[task 2025-12-12T16:00:05.209+00:00] src/backend_common/__init__.py 93 5 24 6 91% 53->61, 55, 57, 66-67, 73, 81->84
[task 2025-12-12T16:00:05.209+00:00] src/backend_common/auth.py 240 97 60 20 54% 47, 55, 59, 63, 69, 72, 75->78, 83, 111, 114, 123, 126, 129, 132, 135, 152->155, 155->158, 166, 169, 172, 191->193, 208-213, 216-227, 237-244, 258->260, 262-288, 293, 295, 301-320, 328, 332, 336-343, 348, 360-379
[task 2025-12-12T16:00:05.209+00:00] src/backend_common/cors.py 7 0 0 0 100%
[task 2025-12-12T16:00:05.209+00:00] src/backend_common/db.py 35 9 4 2 72% 31-39, 43
[task 2025-12-12T16:00:05.209+00:00] src/backend_common/dockerflow.py 7 0 0 0 100%
[task 2025-12-12T16:00:05.209+00:00] src/backend_common/log.py 25 4 4 2 79% 25, 32-36
[task 2025-12-12T16:00:05.210+00:00] src/backend_common/pulse.py 38 22 6 0 36% 30-36, 39-51, 68-76
[task 2025-12-12T16:00:05.210+00:00] src/backend_common/security.py 8 8 0 0 0% 6-40
[task 2025-12-12T16:00:05.210+00:00] src/backend_common/taskcluster.py 15 0 2 1 94% 22->27
[task 2025-12-12T16:00:05.210+00:00] src/backend_common/testing.py 79 51 20 1 29% 57-66, 74-94, 99-124, 135-147, 153->exit, 161-171
[task 2025-12-12T16:00:05.210+00:00] src/cli_common/__init__.py 0 0 0 0 100%
[task 2025-12-12T16:00:05.210+00:00] src/cli_common/command.py 55 23 28 10 53% 17, 21, 26, 34-35, 40, 46, 48->51, 53-67, 78-79, 86-94
[task 2025-12-12T16:00:05.210+00:00] src/cli_common/openapi_subset.py 16 4 4 1 75% 39-41, 45
[task 2025-12-12T16:00:05.210+00:00] src/cli_common/pulse.py 53 45 10 0 13% 20-69, 73-78, 85-97
[task 2025-12-12T16:00:05.210+00:00] src/cli_common/utils.py 13 7 4 0 35% 15-21
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/__init__.py 9 0 0 0 100%
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/api.py 277 166 78 10 37% 45-51, 58-59, 73-80, 107-108, 112, 117-127, 137, 140-141, 153-154, 162->170, 165->162, 195-216, 220-223, 228-229, 234-256, 260-301, 305-326, 330-347, 352-360, 365->371, 383-403, 407-418, 427-441
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/auth0.py 24 0 12 0 100%
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/github.py 128 75 34 2 38% 17-20, 47-82, 89, 96, 101-117, 164-196, 208, 212-213, 217-246, 250-255, 266-272, 282-288, 312-323, 333-336
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/merge_automation.py 148 10 44 2 93% 110-111, 205-206, 225-228, 250, 261
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/product_details.py 464 51 166 29 86% 140, 227, 241-244, 258->261, 266, 309, 316, 329, 380, 405, 452, 455, 491, 495, 508-512, 528, 589, 591, 604-606, 618->620, 695-697, 717-718, 892, 1064, 1074-1077, 1113-1131, 1146, 1155, 1275, 1293->1291, 1308->exit, 1316
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/release.py 59 10 22 0 85% 27-29, 62-64, 101-102, 107-110
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/settings.py 64 6 14 4 87% 45, 48, 189-193, 202-203
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/tasks.py 200 86 50 5 57% 42, 51-60, 72-74, 79-83, 88-92, 111-112, 148-149, 164-176, 180-189, 226-229, 239, 252, 259, 261->263, 267-287, 292, 297, 301-303, 307-314
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/worker.py 31 19 0 0 39% 21-32, 38-53
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/admin/xpi.py 134 110 34 0 14% 22, 27-52, 56-79, 83-85, 89-91, 95-117, 121-135, 139-142, 146-189
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/common/__init__.py 0 0 0 0 100%
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/common/config.py 75 3 16 3 93% 556, 560, 630
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/common/models.py 204 11 0 0 95% 21-24, 28, 55-59, 309
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/common/product.py 11 0 0 0 100%
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/common/version.py 27 2 4 0 94% 33-34
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/public/__init__.py 8 3 0 0 62% 23-32
[task 2025-12-12T16:00:05.210+00:00] src/shipit_api/public/api.py 60 34 18 0 38% 34-50, 68-75, 79-81, 85-88, 92-96
[task 2025-12-12T16:00:05.210+00:00] --------------------------------------------------------------------------------------
[task 2025-12-12T16:00:05.210+00:00] TOTAL 2607 861 658 98 64%
[task 2025-12-12T16:00:05.210+00:00] ================= 155 passed, 87 warnings in 61.86s (0:01:01) ==================
[task 2025-12-12T16:00:06.382+00:00] All done! ✨ 🍰 ✨
[task 2025-12-12T16:00:06.382+00:00] 50 files would be left unchanged.
[task 2025-12-12T16:00:06.382+00:00] /builds/worker/checkouts/vcs/api/.tox/check/bin/isort:10: UserWarning: W0501: The following deprecated CLI flags were used and ignored: --recursive!
[task 2025-12-12T16:00:06.382+00:00] sys.exit(main())
[task 2025-12-12T16:00:06.382+00:00] /builds/worker/checkouts/vcs/api/.tox/check/bin/isort:10: UserWarning: W0500: Please see the 5.0.0 Upgrade guide: https://pycqa.github.io/isort/docs/upgrade_guides/5.0.0.html
[task 2025-12-12T16:00:06.382+00:00] sys.exit(main())
[task 2025-12-12T16:00:06.382+00:00] report: venv> /builds/worker/checkouts/vcs/.venv/bin/uv venv -p /builds/worker/checkouts/vcs/.venv/bin/python --allow-existing --python-preference system /builds/worker/checkouts/vcs/api/.tox/report
[task 2025-12-12T16:00:06.382+00:00] report: uv-sync> uv sync --locked --python-preference system -p /builds/worker/checkouts/vcs/.venv/bin/python
[task 2025-12-12T16:00:06.382+00:00] report: commands[0]> coverage xml '--omit=*test*' -o /builds/worker/artifacts/coverage.xml
[task 2025-12-12T16:00:06.382+00:00] Wrote XML report to /builds/worker/artifacts/coverage.xml
[task 2025-12-12T16:00:06.382+00:00] clean: OK ✔ in 1.32 seconds
[task 2025-12-12T16:00:06.382+00:00] check: OK ✔ in 3.73 seconds
[task 2025-12-12T16:00:06.382+00:00] py312: OK ✔ in 1 minute 13.97 seconds
[task 2025-12-12T16:00:06.382+00:00] clean: OK (1.32=setup[0.99]+cmd[0.33] seconds)
[task 2025-12-12T16:00:06.382+00:00] check: OK (3.73=setup[0.61]+cmd[1.76,0.39,0.97] seconds)
[task 2025-12-12T16:00:06.382+00:00] py312: OK (73.97=setup[0.55]+cmd[73.42] seconds)
[task 2025-12-12T16:00:06.382+00:00] report: OK (1.18=setup[0.37]+cmd[0.81] seconds)
[task 2025-12-12T16:00:06.382+00:00] congratulations :) (76.52 seconds)
[taskcluster 2025-12-12T16:00:07.385Z] Exit Code: 0
[taskcluster 2025-12-12T16:00:07.385Z] User Time: 37.878ms
[taskcluster 2025-12-12T16:00:07.385Z] Kernel Time: 12.986ms
[taskcluster 2025-12-12T16:00:07.385Z] Wall Time: 1m33.995477932s
[taskcluster 2025-12-12T16:00:07.385Z] Average Available System Memory: 14.50 GiB
[taskcluster 2025-12-12T16:00:07.385Z] Average System Memory Used: 1.11 GiB
[taskcluster 2025-12-12T16:00:07.385Z] Peak System Memory Used: 1.45 GiB
[taskcluster 2025-12-12T16:00:07.385Z] Total System Memory: 15.62 GiB
[taskcluster 2025-12-12T16:00:07.385Z] Result: SUCCEEDED
[taskcluster 2025-12-12T16:00:07.385Z] === Task Finished ===
[taskcluster 2025-12-12T16:00:07.385Z] Task Duration: 1m33.996212631s
[taskcluster 2025-12-12T16:00:07.793Z] [mounts] Preserving cache: Moving "/home/task_176555508795840/cache0" to "/home/generic-worker/caches/HdGe4ICrSjyvFBunFECcSg"
[taskcluster 2025-12-12T16:00:07.794Z] [mounts] Preserving cache: Moving "/home/task_176555508795840/cache1" to "/home/generic-worker/caches/PpVRmPzbQQuElNnlkWyf5w"
Loading