feat: allow resolving keys in task context #968
+206
−36
Merged
firefoxci-taskcluster / test-unit-py310
succeeded
Jun 2, 2026 in 1m 35s
FirefoxCI (pull_request)
Run unit tests with py310 on Linux (Treeherder push)
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-06-02T20:30:26.922Z
Resolved: 2026-06-02T20:32:01.551Z
Task Execution Time: 1 minute, 34 seconds, 629 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: IwT0TVmiSLejGXFUcXbOPQ
RunId: 0
Artifacts
- public/coverage.py310
- public/logs/live_backing.log
- public/logs/live.log
[taskcluster 2026-06-02T20:30:26.979Z] Worker Type (taskgraph-t/linux-docker) settings:
[taskcluster 2026-06-02T20:30:26.979Z] {
[taskcluster 2026-06-02T20:30:26.979Z] "generic-worker": {
[taskcluster 2026-06-02T20:30:26.979Z] "config": {
[taskcluster 2026-06-02T20:30:26.979Z] "headlessTasks": true
[taskcluster 2026-06-02T20:30:26.979Z] },
[taskcluster 2026-06-02T20:30:26.979Z] "engine": "multiuser",
[taskcluster 2026-06-02T20:30:26.979Z] "go-arch": "amd64",
[taskcluster 2026-06-02T20:30:26.979Z] "go-os": "linux",
[taskcluster 2026-06-02T20:30:26.979Z] "go-version": "go1.26.2",
[taskcluster 2026-06-02T20:30:26.979Z] "release": "https://github.com/taskcluster/taskcluster/releases/tag/v99.2.1",
[taskcluster 2026-06-02T20:30:26.979Z] "revision": "ddb9ce7efdb98ae2d0917b69778e9f3cd125e07f",
[taskcluster 2026-06-02T20:30:26.979Z] "source": "https://github.com/taskcluster/taskcluster/commits/ddb9ce7efdb98ae2d0917b69778e9f3cd125e07f",
[taskcluster 2026-06-02T20:30:26.979Z] "version": "99.2.1"
[taskcluster 2026-06-02T20:30:26.979Z] },
[taskcluster 2026-06-02T20:30:26.979Z] "image": "projects/taskcluster-imaging/global/images/gw-fxci-gcp-l1-2404-amd64-headless-googlecompute-2026-05-04",
[taskcluster 2026-06-02T20:30:26.979Z] "instance-id": "8242642787857761260",
[taskcluster 2026-06-02T20:30:26.979Z] "instance-type": "projects/887720501152/machineTypes/c2-standard-4",
[taskcluster 2026-06-02T20:30:26.979Z] "local-ipv4": "10.128.0.28",
[taskcluster 2026-06-02T20:30:26.979Z] "project-id": "fxci-production-level1-workers",
...(560 lines hidden)...
[task 2026-06-02T20:31:30.320+00:00] test/test_util_schema.py::TestSchemaValidationError::test_message_contains_prefix_and_object PASSED [ 72%]
[task 2026-06-02T20:31:30.321+00:00] test/test_util_schema.py::TestSchemaValidationError::test_msgspec_schema_raises_schema_validation_error PASSED [ 72%]
[task 2026-06-02T20:31:30.323+00:00] test/test_util_schema.py::TestSchemaValidationError::test_schema_validate_propagates_msgspec_error PASSED [ 72%]
[task 2026-06-02T20:31:30.324+00:00] test/test_util_schema.py::TestSchemaValidationError::test_valid PASSED [ 72%]
[task 2026-06-02T20:31:30.326+00:00] test/test_util_schema.py::TestSchemaFeatures::test_allow_unknown_fields PASSED [ 72%]
[task 2026-06-02T20:31:30.328+00:00] test/test_util_schema.py::TestSchemaFeatures::test_forbid_unknown_fields PASSED [ 73%]
[task 2026-06-02T20:31:30.329+00:00] test/test_util_schema.py::TestSchemaFeatures::test_kebab_rename PASSED [ 73%]
[task 2026-06-02T20:31:30.331+00:00] test/test_util_schema.py::test_validation_skipped PASSED [ 73%]
[task 2026-06-02T20:31:30.332+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_list PASSED [ 73%]
[task 2026-06-02T20:31:30.334+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_match_default PASSED [ 73%]
[task 2026-06-02T20:31:30.336+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_match_extra_value PASSED [ 73%]
[task 2026-06-02T20:31:30.337+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_match_nested_exact PASSED [ 74%]
[task 2026-06-02T20:31:30.339+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_match_partial_regexp PASSED [ 74%]
[task 2026-06-02T20:31:30.340+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_match_regexp PASSED [ 74%]
[task 2026-06-02T20:31:30.342+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_multiple_matches PASSED [ 74%]
[task 2026-06-02T20:31:30.344+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_nested PASSED [ 74%]
[task 2026-06-02T20:31:30.345+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_no_by PASSED [ 74%]
[task 2026-06-02T20:31:30.347+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_no_by_dotted PASSED [ 75%]
[task 2026-06-02T20:31:30.349+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_no_by_empty_dict PASSED [ 75%]
[task 2026-06-02T20:31:30.350+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_no_by_not_by PASSED [ 75%]
[task 2026-06-02T20:31:30.352+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_no_by_not_dict PASSED [ 75%]
[task 2026-06-02T20:31:30.353+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_no_by_not_only_by PASSED [ 75%]
[task 2026-06-02T20:31:30.355+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_no_key PASSED [ 75%]
[task 2026-06-02T20:31:30.356+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_no_key_no_default PASSED [ 75%]
[task 2026-06-02T20:31:30.358+00:00] test/test_util_schema.py::TestResolveKeyedBy::test_no_match PASSED [ 76%]
[task 2026-06-02T20:31:30.359+00:00] test/test_util_schema.py::TestNestedStructFieldsOptional::test_index_schema_accepts_all_fields PASSED [ 76%]
[task 2026-06-02T20:31:30.361+00:00] test/test_util_schema.py::TestNestedStructFieldsOptional::test_index_schema_accepts_partial_fields PASSED [ 76%]
[task 2026-06-02T20:31:30.363+00:00] test/test_util_schema.py::TestValidateSchemaDictHandler::test_dict_schema_invalid PASSED [ 76%]
[task 2026-06-02T20:31:30.364+00:00] test/test_util_schema.py::TestValidateSchemaDictHandler::test_dict_schema_valid PASSED [ 76%]
[task 2026-06-02T20:31:30.366+00:00] test/test_util_schema.py::test_optionally_keyed_by PASSED [ 76%]
[task 2026-06-02T20:31:30.368+00:00] test/test_util_schema.py::test_optionally_keyed_by_multiple_keys PASSED [ 77%]
[task 2026-06-02T20:31:30.369+00:00] test/test_util_schema.py::test_optionally_keyed_by_object_passthrough PASSED [ 77%]
[task 2026-06-02T20:31:30.371+00:00] test/test_util_schema.py::test_optionally_keyed_by_dict PASSED [ 77%]
[task 2026-06-02T20:31:30.375+00:00] test/test_util_schema.py::test_from_dict_valid[fields_dict0-data0-name-foo] PASSED [ 77%]
[task 2026-06-02T20:31:30.379+00:00] test/test_util_schema.py::test_from_dict_valid[fields_dict1-data1-count-None] PASSED [ 77%]
[task 2026-06-02T20:31:30.383+00:00] test/test_util_schema.py::test_from_dict_valid[fields_dict2-data2-tags-expected2] PASSED [ 77%]
[task 2026-06-02T20:31:30.386+00:00] test/test_util_schema.py::test_from_dict_valid[fields_dict3-data3-my_field-bar] PASSED [ 78%]
[task 2026-06-02T20:31:30.390+00:00] test/test_util_schema.py::test_from_dict_invalid[fields_dict0-data0] PASSED [ 78%]
[task 2026-06-02T20:31:30.393+00:00] test/test_util_schema.py::test_from_dict_invalid[fields_dict1-data1] PASSED [ 78%]
[task 2026-06-02T20:31:30.397+00:00] test/test_util_schema.py::test_exclusive[data0-True] PASSED [ 78%]
[task 2026-06-02T20:31:30.400+00:00] test/test_util_schema.py::test_exclusive[data1-False] PASSED [ 78%]
[task 2026-06-02T20:31:30.404+00:00] test/test_util_schema.py::test_exclusive[data2-False] PASSED [ 78%]
[task 2026-06-02T20:31:30.406+00:00] test/test_util_taskcluster.py::test_get_root_url PASSED [ 78%]
[task 2026-06-02T20:31:30.408+00:00] test/test_util_taskcluster.py::test_get_artifact_url PASSED [ 79%]
[task 2026-06-02T20:31:30.424+00:00] test/test_util_taskcluster.py::test_get_artifact PASSED [ 79%]
[task 2026-06-02T20:31:30.428+00:00] test/test_util_taskcluster.py::test_list_artifact PASSED [ 79%]
[task 2026-06-02T20:31:30.430+00:00] test/test_util_taskcluster.py::test_get_artifact_path PASSED [ 79%]
[task 2026-06-02T20:31:30.432+00:00] test/test_util_taskcluster.py::test_get_index_url PASSED [ 79%]
[task 2026-06-02T20:31:30.436+00:00] test/test_util_taskcluster.py::test_find_task_id PASSED [ 79%]
[task 2026-06-02T20:31:30.440+00:00] test/test_util_taskcluster.py::test_find_task_id_batched PASSED [ 80%]
[task 2026-06-02T20:31:30.445+00:00] test/test_util_taskcluster.py::test_get_artifact_from_index PASSED [ 80%]
[task 2026-06-02T20:31:30.450+00:00] test/test_util_taskcluster.py::test_get_artifact_from_index_uses_artifact_path_for_parsing PASSED [ 80%]
[task 2026-06-02T20:31:30.455+00:00] test/test_util_taskcluster.py::test_list_tasks PASSED [ 80%]
[task 2026-06-02T20:31:30.457+00:00] test/test_util_taskcluster.py::test_parse_time PASSED [ 80%]
[task 2026-06-02T20:31:30.459+00:00] test/test_util_taskcluster.py::test_get_task_url PASSED [ 80%]
[task 2026-06-02T20:31:30.462+00:00] test/test_util_taskcluster.py::test_get_task_definition PASSED [ 81%]
[task 2026-06-02T20:31:30.466+00:00] test/test_util_taskcluster.py::test_get_task_definitions PASSED [ 81%]
[task 2026-06-02T20:31:30.469+00:00] test/test_util_taskcluster.py::test_cancel_task PASSED [ 81%]
[task 2026-06-02T20:31:30.472+00:00] test/test_util_taskcluster.py::test_status_task PASSED [ 81%]
[task 2026-06-02T20:31:30.477+00:00] test/test_util_taskcluster.py::test_status_task_batched PASSED [ 81%]
[task 2026-06-02T20:31:30.480+00:00] test/test_util_taskcluster.py::test_state_task PASSED [ 81%]
[task 2026-06-02T20:31:30.484+00:00] test/test_util_taskcluster.py::test_rerun_task PASSED [ 82%]
[task 2026-06-02T20:31:30.488+00:00] test/test_util_taskcluster.py::test_get_current_scopes PASSED [ 82%]
[task 2026-06-02T20:31:30.491+00:00] test/test_util_taskcluster.py::test_purge_cache PASSED [ 82%]
[task 2026-06-02T20:31:30.495+00:00] test/test_util_taskcluster.py::test_send_email PASSED [ 82%]
[task 2026-06-02T20:31:30.501+00:00] test/test_util_taskcluster.py::test_list_task_group_incomplete_tasks PASSED [ 82%]
[task 2026-06-02T20:31:30.507+00:00] test/test_util_taskcluster.py::test_get_ancestors PASSED [ 82%]
[task 2026-06-02T20:31:30.513+00:00] test/test_util_taskcluster.py::test_get_ancestors_string PASSED [ 82%]
[task 2026-06-02T20:31:30.516+00:00] test/test_util_taskcluster.py::test_get_taskcluster_client PASSED [ 83%]
[task 2026-06-02T20:31:30.518+00:00] test/test_util_templates.py::MergeTest::test_merge PASSED [ 83%]
[task 2026-06-02T20:31:30.520+00:00] test/test_util_templates.py::MergeTest::test_merge_by PASSED [ 83%]
[task 2026-06-02T20:31:30.521+00:00] test/test_util_templates.py::MergeTest::test_merge_diff_types PASSED [ 83%]
[task 2026-06-02T20:31:30.523+00:00] test/test_util_templates.py::MergeTest::test_merge_multiple_by PASSED [ 83%]
[task 2026-06-02T20:31:30.524+00:00] test/test_util_templates.py::MergeTest::test_merge_to_dicts PASSED [ 83%]
[task 2026-06-02T20:31:30.526+00:00] test/test_util_templates.py::MergeTest::test_merge_to_lists PASSED [ 84%]
[task 2026-06-02T20:31:30.529+00:00] test/test_util_time.py::FromNowTest::test_current_json_time PASSED [ 84%]
[task 2026-06-02T20:31:30.530+00:00] test/test_util_time.py::FromNowTest::test_invalid_str PASSED [ 84%]
[task 2026-06-02T20:31:30.532+00:00] test/test_util_time.py::FromNowTest::test_json_from_now PASSED [ 84%]
[task 2026-06-02T20:31:30.533+00:00] test/test_util_time.py::FromNowTest::test_json_from_now_tzinfo PASSED [ 84%]
[task 2026-06-02T20:31:30.535+00:00] test/test_util_time.py::FromNowTest::test_json_from_now_utc_now PASSED [ 84%]
[task 2026-06-02T20:31:30.536+00:00] test/test_util_time.py::FromNowTest::test_missing_unit PASSED [ 85%]
[task 2026-06-02T20:31:30.538+00:00] test/test_util_time.py::FromNowTest::test_missing_unknown_unit PASSED [ 85%]
[task 2026-06-02T20:31:30.540+00:00] test/test_util_time.py::FromNowTest::test_value_of PASSED [ 85%]
[task 2026-06-02T20:31:30.541+00:00] test/test_util_treeherder.py::TestSymbols::test_add_suffix_no_group PASSED [ 85%]
[task 2026-06-02T20:31:30.543+00:00] test/test_util_treeherder.py::TestSymbols::test_add_suffix_with_group PASSED [ 85%]
[task 2026-06-02T20:31:30.544+00:00] test/test_util_treeherder.py::TestSymbols::test_join_no_group PASSED [ 85%]
[task 2026-06-02T20:31:30.546+00:00] test/test_util_treeherder.py::TestSymbols::test_join_with_group PASSED [ 85%]
[task 2026-06-02T20:31:30.547+00:00] test/test_util_treeherder.py::TestSymbols::test_split_no_group PASSED [ 86%]
[task 2026-06-02T20:31:30.549+00:00] test/test_util_treeherder.py::TestSymbols::test_split_with_group PASSED [ 86%]
[task 2026-06-02T20:31:30.557+00:00] test/test_util_vcs.py::test_get_repository[git] PASSED [ 86%]
[task 2026-06-02T20:31:30.563+00:00] test/test_util_vcs.py::test_get_repository[hg] PASSED [ 86%]
[task 2026-06-02T20:31:30.570+00:00] test/test_util_vcs.py::test_get_repository_type[git] PASSED [ 86%]
[task 2026-06-02T20:31:30.577+00:00] test/test_util_vcs.py::test_get_repository_type[hg] PASSED [ 86%]
[task 2026-06-02T20:31:30.579+00:00] test/test_util_vcs.py::test_get_repository_type_failure PASSED [ 87%]
[task 2026-06-02T20:31:30.581+00:00] test/test_util_vcs.py::test_hgplain PASSED [ 87%]
[task 2026-06-02T20:31:30.598+00:00] test/test_util_vcs.py::test_get_commit_message[git-commit message in\u2026 pure utf8] PASSED [ 87%]
[task 2026-06-02T20:31:30.614+00:00] test/test_util_vcs.py::test_get_commit_message[git-commit message in... ascii] PASSED [ 87%]
[task 2026-06-02T20:31:31.177+00:00] test/test_util_vcs.py::test_get_commit_message[hg-commit message in\u2026 pure utf8] PASSED [ 87%]
[task 2026-06-02T20:31:31.735+00:00] test/test_util_vcs.py::test_get_commit_message[hg-commit message in... ascii] PASSED [ 87%]
[task 2026-06-02T20:31:31.745+00:00] test/test_util_vcs.py::test_calculate_head_rev[git] PASSED [ 88%]
[task 2026-06-02T20:31:31.935+00:00] test/test_util_vcs.py::test_calculate_head_rev[hg] PASSED [ 88%]
[task 2026-06-02T20:31:31.949+00:00] test/test_util_vcs.py::test_get_repo_path[git] PASSED [ 88%]
[task 2026-06-02T20:31:32.294+00:00] test/test_util_vcs.py::test_get_repo_path[hg] PASSED [ 88%]
[task 2026-06-02T20:31:32.319+00:00] test/test_util_vcs.py::test_update[git] PASSED [ 88%]
[task 2026-06-02T20:31:33.859+00:00] test/test_util_vcs.py::test_update[hg] PASSED [ 88%]
[task 2026-06-02T20:31:33.888+00:00] test/test_util_vcs.py::test_branch[git] PASSED [ 89%]
[task 2026-06-02T20:31:35.060+00:00] test/test_util_vcs.py::test_branch[hg] PASSED [ 89%]
[task 2026-06-02T20:31:35.071+00:00] test/test_util_vcs.py::test_remote_name_no_remote[git] PASSED [ 89%]
[task 2026-06-02T20:31:35.239+00:00] test/test_util_vcs.py::test_remote_name_no_remote[hg] PASSED [ 89%]
[task 2026-06-02T20:31:35.268+00:00] test/test_util_vcs.py::test_remote_name[git] PASSED [ 89%]
[task 2026-06-02T20:31:35.612+00:00] test/test_util_vcs.py::test_remote_name[hg] PASSED [ 89%]
[task 2026-06-02T20:31:35.657+00:00] test/test_util_vcs.py::test_all_remote_names[git] PASSED [ 89%]
[task 2026-06-02T20:31:36.336+00:00] test/test_util_vcs.py::test_all_remote_names[hg] PASSED [ 90%]
[task 2026-06-02T20:31:36.383+00:00] test/test_util_vcs.py::test_remote_name_many_remotes[git] PASSED [ 90%]
[task 2026-06-02T20:31:36.904+00:00] test/test_util_vcs.py::test_remote_name_many_remotes[hg] PASSED [ 90%]
[task 2026-06-02T20:31:36.948+00:00] test/test_util_vcs.py::test_remote_name_default_and_origin[git] PASSED [ 90%]
[task 2026-06-02T20:31:37.481+00:00] test/test_util_vcs.py::test_remote_name_default_and_origin[hg] PASSED [ 90%]
[task 2026-06-02T20:31:37.496+00:00] test/test_util_vcs.py::test_default_branch_guess[git] PASSED [ 90%]
[task 2026-06-02T20:31:37.502+00:00] test/test_util_vcs.py::test_default_branch_guess[hg] PASSED [ 91%]
[task 2026-06-02T20:31:37.535+00:00] test/test_util_vcs.py::test_default_branch_remote_query[git] PASSED [ 91%]
[task 2026-06-02T20:31:37.721+00:00] test/test_util_vcs.py::test_default_branch_remote_query[hg] PASSED [ 91%]
[task 2026-06-02T20:31:37.741+00:00] test/test_util_vcs.py::test_default_branch_cloned_metadata[git] PASSED [ 91%]
[task 2026-06-02T20:31:37.748+00:00] test/test_util_vcs.py::test_default_branch_cloned_metadata[hg] PASSED [ 91%]
[task 2026-06-02T20:31:37.773+00:00] test/test_util_vcs.py::test_get_tracked_files[git] PASSED [ 91%]
[task 2026-06-02T20:31:39.466+00:00] test/test_util_vcs.py::test_get_tracked_files[hg] PASSED [ 92%]
[task 2026-06-02T20:31:39.481+00:00] test/test_util_vcs.py::test_get_changed_files_no_changes[git] PASSED [ 92%]
[task 2026-06-02T20:31:40.193+00:00] test/test_util_vcs.py::test_get_changed_files_no_changes[hg] PASSED [ 92%]
[task 2026-06-02T20:31:40.223+00:00] test/test_util_vcs.py::test_get_changed_files_one_modified_file[git] PASSED [ 92%]
[task 2026-06-02T20:31:41.523+00:00] test/test_util_vcs.py::test_get_changed_files_one_modified_file[hg] PASSED [ 92%]
[task 2026-06-02T20:31:41.547+00:00] test/test_util_vcs.py::test_get_changed_files_one_deleted_file[git] PASSED [ 92%]
[task 2026-06-02T20:31:42.863+00:00] test/test_util_vcs.py::test_get_changed_files_one_deleted_file[hg] PASSED [ 92%]
[task 2026-06-02T20:31:42.890+00:00] test/test_util_vcs.py::test_get_changed_files_one_added_file[git] PASSED [ 93%]
[task 2026-06-02T20:31:44.364+00:00] test/test_util_vcs.py::test_get_changed_files_one_added_file[hg] PASSED [ 93%]
[task 2026-06-02T20:31:44.421+00:00] test/test_util_vcs.py::test_get_changed_files_two_revisions[git] PASSED [ 93%]
[task 2026-06-02T20:31:47.882+00:00] test/test_util_vcs.py::test_get_changed_files_two_revisions[hg] PASSED [ 93%]
[task 2026-06-02T20:31:47.956+00:00] test/test_util_vcs.py::test_workdir_outgoing[git] PASSED [ 93%]
[task 2026-06-02T20:31:52.862+00:00] test/test_util_vcs.py::test_workdir_outgoing[hg] PASSED [ 93%]
[task 2026-06-02T20:31:52.895+00:00] test/test_util_vcs.py::test_working_directory_clean[git] PASSED [ 94%]
[task 2026-06-02T20:31:55.061+00:00] test/test_util_vcs.py::test_working_directory_clean[hg] PASSED [ 94%]
[task 2026-06-02T20:31:55.111+00:00] test/test_util_vcs.py::test_find_latest_common_revision[git] PASSED [ 94%]
[task 2026-06-02T20:31:57.402+00:00] test/test_util_vcs.py::test_find_latest_common_revision[hg] PASSED [ 94%]
[task 2026-06-02T20:31:57.424+00:00] test/test_util_vcs.py::test_does_revision_exist_locally[git] PASSED [ 94%]
[task 2026-06-02T20:31:58.776+00:00] test/test_util_vcs.py::test_does_revision_exist_locally[hg] PASSED [ 94%]
[task 2026-06-02T20:31:58.850+00:00] test/test_util_vcs.py::test_get_changed_files_shallow_clone PASSED [ 95%]
[task 2026-06-02T20:31:58.871+00:00] test/test_util_vcs.py::test_get_changed_files_with_null_base_revision[git] PASSED [ 95%]
[task 2026-06-02T20:31:59.643+00:00] test/test_util_vcs.py::test_get_changed_files_with_null_base_revision[hg] PASSED [ 95%]
[task 2026-06-02T20:31:59.673+00:00] test/test_util_vcs.py::test_get_changed_files_with_null_base_revision_shallow_clone PASSED [ 95%]
[task 2026-06-02T20:31:59.736+00:00] test/test_util_vcs.py::test_get_note_git PASSED [ 95%]
[task 2026-06-02T20:31:59.738+00:00] test/test_util_verify.py::test_verification_types[GraphVerification] PASSED [ 95%]
[task 2026-06-02T20:31:59.740+00:00] test/test_util_verify.py::test_verification_types[InitialVerification] PASSED [ 96%]
[task 2026-06-02T20:31:59.742+00:00] test/test_util_verify.py::test_verification_types[KindsVerification] PASSED [ 96%]
[task 2026-06-02T20:31:59.744+00:00] test/test_util_verify.py::test_verification_types[ParametersVerification] PASSED [ 96%]
[task 2026-06-02T20:31:59.746+00:00] test/test_util_verify.py::test_verification_types[GraphConfigVerification] PASSED [ 96%]
[task 2026-06-02T20:31:59.749+00:00] test/test_util_verify.py::test_verification[task_graph_symbol: valid] PASSED [ 96%]
[task 2026-06-02T20:31:59.751+00:00] test/test_util_verify.py::test_verification[task_graph_symbol: conflicting symbol] PASSED [ 96%]
[task 2026-06-02T20:31:59.753+00:00] test/test_util_verify.py::test_verification[task_graph_symbol: too many collections] PASSED [ 96%]
[task 2026-06-02T20:31:59.755+00:00] test/test_util_verify.py::test_verification[routes_notfication_filter: valid] PASSED [ 97%]
[task 2026-06-02T20:31:59.757+00:00] test/test_util_verify.py::test_verification[routes_notfication_filter: invalid] PASSED [ 97%]
[task 2026-06-02T20:31:59.760+00:00] test/test_util_verify.py::test_verification[routes_notfication_filter: deprecated] PASSED [ 97%]
[task 2026-06-02T20:31:59.762+00:00] test/test_util_verify.py::test_verification[verify_index_route: valid route] PASSED [ 97%]
[task 2026-06-02T20:31:59.764+00:00] test/test_util_verify.py::test_verification[verify_index_route: invalid slash in route] PASSED [ 97%]
[task 2026-06-02T20:31:59.766+00:00] test/test_util_verify.py::test_verification[verify_index_route: invalid plus in route] PASSED [ 97%]
[task 2026-06-02T20:31:59.769+00:00] test/test_util_verify.py::test_verification[verify_index_route: invalid space in route] PASSED [ 98%]
[task 2026-06-02T20:31:59.771+00:00] test/test_util_verify.py::test_verification[dependencies under limit] PASSED [ 98%]
[task 2026-06-02T20:31:59.773+00:00] test/test_util_verify.py::test_verification[dependencies at limit] PASSED [ 98%]
[task 2026-06-02T20:31:59.775+00:00] test/test_util_verify.py::test_verification[dependencies over limit] PASSED [ 98%]
[task 2026-06-02T20:31:59.778+00:00] test/test_util_verify.py::test_verification[using cache with wrong trust-domain] PASSED [ 98%]
[task 2026-06-02T20:31:59.780+00:00] test/test_util_verify.py::test_verification[using reserved cache] PASSED [ 98%]
[task 2026-06-02T20:31:59.782+00:00] test/test_util_verify.py::test_verification[using run-task without cache suffix] PASSED [ 99%]
[task 2026-06-02T20:31:59.784+00:00] test/test_util_verify.py::test_verification[using run-task-hg without cache suffix] PASSED [ 99%]
[task 2026-06-02T20:31:59.787+00:00] test/test_util_workertypes.py::test_get_worker_type[linux-1-Exception] PASSED [ 99%]
[task 2026-06-02T20:31:59.789+00:00] test/test_util_workertypes.py::test_get_worker_type[b-linux-3-test-domain-3/b-linux-gcp] PASSED [ 99%]
[task 2026-06-02T20:31:59.791+00:00] test/test_util_workertypes.py::test_get_worker_type[t-linux-1-test-domain-1/t-linux-gcp] PASSED [ 99%]
[task 2026-06-02T20:31:59.792+00:00] test/test_util_yaml.py::test_load PASSED [ 99%]
[task 2026-06-02T20:32:00.038+00:00] test/test_util_yaml.py::test_key_order PASSED [100%]
[task 2026-06-02T20:32:00.038+00:00]
[task 2026-06-02T20:32:00.038+00:00] =============================== warnings summary ===============================
[task 2026-06-02T20:32:00.038+00:00] test/test_config.py::test_vcs_root_fallback
[task 2026-06-02T20:32:00.038+00:00] /builds/worker/checkouts/vcs/test/test_config.py:60: PytestMockWarning: Mocks returned by pytest-mock do not need to be used as context managers. The mocker fixture automatically undoes mocking at the end of a test. This warning can be ignored if it was triggered by mocking a context manager. https://pytest-mock.readthedocs.io/en/latest/usage.html#usage-as-context-manager
[task 2026-06-02T20:32:00.038+00:00] with mocker.patch("taskgraph.config.get_repository", side_effect=RuntimeError):
[task 2026-06-02T20:32:00.038+00:00]
[task 2026-06-02T20:32:00.038+00:00] test/test_config.py::test_vcs_root_fallback
[task 2026-06-02T20:32:00.038+00:00] /builds/worker/checkouts/vcs/test/test_config.py:63: PytestMockWarning: Mocks returned by pytest-mock do not need to be used as context managers. The mocker fixture automatically undoes mocking at the end of a test. This warning can be ignored if it was triggered by mocking a context manager. https://pytest-mock.readthedocs.io/en/latest/usage.html#usage-as-context-manager
[task 2026-06-02T20:32:00.038+00:00] with mocker.patch("taskgraph.config.get_repository", side_effect=RuntimeError):
[task 2026-06-02T20:32:00.038+00:00]
[task 2026-06-02T20:32:00.038+00:00] -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
[task 2026-06-02T20:32:00.038+00:00] ============ 619 passed, 7 skipped, 2 xfailed, 2 warnings in 47.44s ============
[taskcluster 2026-06-02T20:32:00.569Z] Exit Code: 0
[taskcluster 2026-06-02T20:32:00.569Z] User Time: 32.647ms
[taskcluster 2026-06-02T20:32:00.569Z] Kernel Time: 35.066ms
[taskcluster 2026-06-02T20:32:00.569Z] Wall Time: 59.596454952s
[taskcluster 2026-06-02T20:32:00.569Z] Average Available System Memory: 14.54 GiB
[taskcluster 2026-06-02T20:32:00.569Z] Average System Memory Used: 1.07 GiB
[taskcluster 2026-06-02T20:32:00.569Z] Peak System Memory Used: 1.31 GiB
[taskcluster 2026-06-02T20:32:00.569Z] Total System Memory: 15.61 GiB
[taskcluster 2026-06-02T20:32:00.569Z] Result: SUCCEEDED
[taskcluster 2026-06-02T20:32:00.569Z] === Task Finished ===
[taskcluster 2026-06-02T20:32:00.569Z] Task Duration: 59.596983007s
[taskcluster 2026-06-02T20:32:01.118Z] [mounts] Preserving cache: Moving "/home/task_178043222599614/cache0" to "/home/generic-worker/caches/Kfv_7QkZQXafLHg9QgR_cg"
[taskcluster 2026-06-02T20:32:01.118Z] [mounts] Preserving cache: Moving "/home/task_178043222599614/cache1" to "/home/generic-worker/caches/An_lC01NTRCPw4nzr4aCXQ"
Loading