Open Bug 1919741 Opened 1 month ago Updated 17 days ago

Allow vendor-specific Python handlers

Categories

(Testing :: web-platform-tests, enhancement)

enhancement

Tracking

(Not tracked)

ASSIGNED

People

(Reporter: jgraham, Assigned: jgraham, NeedInfo)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Currently all Python handlers need to be put in the upstream directory because that's the only place pywebsocket will load from. We should also allow defining extra paths to websocket handlers, specifically for vendor integrations.

This allows vendors to write their own websockets handlers for
non-shared tests.

Note that the handlers still all share the same namespace, so vendor
handlers must have a globally unique name, not just unique in the
vendor directory.

:saschanaz - do you want to try out this patch and see if it helps you?

Flags: needinfo?(krosylight)

It didn't but I figured it out, the extra parameter was missing in start_wss_server. I commented in the patch too and with that parameter it works. Thanks!

Flags: needinfo?(krosylight)
Assignee: nobody → james
Attachment #9425811 - Attachment description: Bug 1919741 - Allow specifying extra websockets handler directories → Bug 1919741 - Allow specifying extra websockets handler directories,
Status: NEW → ASSIGNED
Pushed by james@hoppipolla.co.uk: https://hg.mozilla.org/integration/autoland/rev/543f6fbf6e4c Allow specifying extra websockets handler directories, r=Sasha
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/48647 for changes under testing/web-platform/tests
Backout by agoloman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/50d892f7fa52 Backed out changeset 543f6fbf6e4c for causing Gecko decision task failure.

Backed out for causing Gecko decision task failure.

[task 2024-10-16T12:55:40.737Z] Traceback (most recent call last):
[task 2024-10-16T12:55:40.737Z]   File "/builds/worker/checkouts/gecko/third_party/python/taskcluster_taskgraph/taskgraph/generator.py", line 311, in _run
[task 2024-10-16T12:55:40.737Z]     new_tasks = kind.load_tasks(
[task 2024-10-16T12:55:40.737Z]   File "/builds/worker/checkouts/gecko/third_party/python/taskcluster_taskgraph/taskgraph/generator.py", line 76, in load_tasks
[task 2024-10-16T12:55:40.737Z]     tasks = [
[task 2024-10-16T12:55:40.737Z]   File "/builds/worker/checkouts/gecko/third_party/python/taskcluster_taskgraph/taskgraph/generator.py", line 76, in <listcomp>
[task 2024-10-16T12:55:40.737Z]     tasks = [
[task 2024-10-16T12:55:40.737Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 2312, in check_run_task_caches
[task 2024-10-16T12:55:40.737Z]     for task in tasks:
[task 2024-10-16T12:55:40.737Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 2222, in check_task_dependencies
[task 2024-10-16T12:55:40.737Z]     for task in tasks:
[task 2024-10-16T12:55:40.737Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 2208, in check_task_identifiers
[task 2024-10-16T12:55:40.737Z]     for task in tasks:
[task 2024-10-16T12:55:40.737Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 2189, in chain_of_trust
[task 2024-10-16T12:55:40.737Z]     for task in tasks:
[task 2024-10-16T12:55:40.737Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1992, in build_task
[task 2024-10-16T12:55:40.738Z]     for task in tasks:
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1965, in set_task_and_artifact_expiry
[task 2024-10-16T12:55:40.738Z]     for job in jobs:
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1938, in try_task_config_routes
[task 2024-10-16T12:55:40.738Z]     for task in tasks:
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1925, in try_task_config_chemspill_prio
[task 2024-10-16T12:55:40.738Z]     yield from tasks
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1905, in try_task_config_env
[task 2024-10-16T12:55:40.738Z]     yield from tasks
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1871, in add_index_routes
[task 2024-10-16T12:55:40.738Z]     for task in tasks:
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1666, in validate
[task 2024-10-16T12:55:40.738Z]     for task in tasks:
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1644, in task_name_from_label
[task 2024-10-16T12:55:40.738Z]     for task in tasks:
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1634, in setup_raptor
[task 2024-10-16T12:55:40.738Z]     for task in tasks:
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1575, in set_defaults
[task 2024-10-16T12:55:40.738Z]     for task in tasks:
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/task.py", line 1551, in set_implementation
[task 2024-10-16T12:55:40.738Z]     for task in tasks:
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/job/__init__.py", line 274, in use_fetches
[task 2024-10-16T12:55:40.738Z]     for job in order_tasks(config, jobs):
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/cached_tasks.py", line 20, in order_tasks
[task 2024-10-16T12:55:40.738Z]     pending = deque(tasks)
[task 2024-10-16T12:55:40.738Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/job/__init__.py", line 207, in use_system_python
[task 2024-10-16T12:55:40.739Z]     for job in jobs:
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/job/__init__.py", line 170, in make_task_description
[task 2024-10-16T12:55:40.739Z]     for job in jobs:
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/job/__init__.py", line 154, in set_label
[task 2024-10-16T12:55:40.739Z]     for job in jobs:
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/job/__init__.py", line 136, in set_implementation
[task 2024-10-16T12:55:40.739Z]     for job in jobs:
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/job/__init__.py", line 116, in rewrite_when_to_optimization
[task 2024-10-16T12:55:40.739Z]     for job in jobs:
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/third_party/python/taskcluster_taskgraph/taskgraph/transforms/base.py", line 144, in __call__
[task 2024-10-16T12:55:40.739Z]     for task in tasks:
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/test/__init__.py", line 438, in make_job_description
[task 2024-10-16T12:55:40.739Z]     for task in tasks:
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/test/__init__.py", line 430, in run_remaining_transforms
[task 2024-10-16T12:55:40.739Z]     yield from xforms(config, [task])
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/test/chunk.py", line 254, in split_chunks
[task 2024-10-16T12:55:40.739Z]     for task in tasks:
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/test/chunk.py", line 198, in resolve_dynamic_chunks
[task 2024-10-16T12:55:40.739Z]     for task in tasks:
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/transforms/test/chunk.py", line 107, in set_test_manifests
[task 2024-10-16T12:55:40.739Z]     task["test-manifests"] = loader.get_manifests(
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/python/mozbuild/mozbuild/util.py", line 917, in method_call
[task 2024-10-16T12:55:40.739Z]     cache[args] = self.func(instance, *args)
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/util/chunking.py", line 350, in get_manifests
[task 2024-10-16T12:55:40.739Z]     manifests = super().get_manifests(suite, mozinfo)
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/python/mozbuild/mozbuild/util.py", line 917, in method_call
[task 2024-10-16T12:55:40.739Z]     cache[args] = self.func(instance, *args)
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/util/chunking.py", line 276, in get_manifests
[task 2024-10-16T12:55:40.739Z]     tests = self.get_tests(suite)
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/python/mozbuild/mozbuild/util.py", line 917, in method_call
[task 2024-10-16T12:55:40.739Z]     cache[args] = self.func(instance, *args)
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/taskcluster/gecko_taskgraph/util/chunking.py", line 263, in get_tests
[task 2024-10-16T12:55:40.739Z]     return list(
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/testing/mozbase/moztest/moztest/resolve.py", line 1063, in resolve_tests
[task 2024-10-16T12:55:40.739Z]     for test in self._resolve(**kwargs):
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/testing/mozbase/moztest/moztest/resolve.py", line 786, in _resolve
[task 2024-10-16T12:55:40.739Z]     self.add_wpt_manifest_data()
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/testing/mozbase/moztest/moztest/resolve.py", line 940, in add_wpt_manifest_data
[task 2024-10-16T12:55:40.739Z]     import manifestupdate
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/testing/web-platform/manifestupdate.py", line 16, in <module>
[task 2024-10-16T12:55:40.739Z]     from wptrunner import wptcommandline
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/testing/web-platform/tests/tools/wptrunner/wptrunner/wptcommandline.py", line 11, in <module>
[task 2024-10-16T12:55:40.739Z]     from . import config
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/testing/web-platform/tests/tools/wptrunner/wptrunner/config.py", line 12, in <module>
[task 2024-10-16T12:55:40.739Z]     class ConfigDict(Dict[str, str]):
[task 2024-10-16T12:55:40.739Z]   File "/builds/worker/checkouts/gecko/testing/web-platform/tests/tools/wptrunner/wptrunner/config.py", line 26, in ConfigDict
[task 2024-10-16T12:55:40.739Z]     def get_paths(self, key: str, default:Optional[list[str]] = None) -> Optional[list[str]]:
[task 2024-10-16T12:55:40.739Z] TypeError: 'type' object is not subscriptable
Flags: needinfo?(james)
Upstream PR was closed without merging
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: