40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
# mypy: ignore-errors
|
|
|
|
import json
|
|
import os
|
|
|
|
from tools.wpt.utils import load_source
|
|
|
|
here = os.path.dirname(__file__)
|
|
localpaths = load_source("localpaths", os.path.abspath(os.path.join(here, os.pardir, "localpaths.py")))
|
|
|
|
root = localpaths.repo_root
|
|
|
|
from manifest import manifest
|
|
|
|
|
|
def main(request, response):
|
|
path = os.path.join(root, "MANIFEST.json")
|
|
|
|
# TODO make this download rather than rebuilding from scratch when possible
|
|
manifest_file = manifest.load_and_update(root, path, "/", parallel=False)
|
|
|
|
supported_types = ["testharness", "reftest", "manual"]
|
|
data = {"items": {},
|
|
"url_base": "/"}
|
|
for item_type in supported_types:
|
|
data["items"][item_type] = {}
|
|
for item_type, path, tests in manifest_file.itertypes(*supported_types):
|
|
tests_data = []
|
|
for item in tests:
|
|
test_data = [item.url[1:]]
|
|
if item_type == "reftest":
|
|
test_data.append(item.references)
|
|
test_data.append({})
|
|
if item_type != "manual":
|
|
test_data[-1]["timeout"] = item.timeout
|
|
tests_data.append(test_data)
|
|
assert path not in data["items"][item_type]
|
|
data["items"][item_type][path] = tests_data
|
|
|
|
return [("Content-Type", "application/json")], json.dumps(data)
|