Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

import pytest
from mozunit import main
from gecko_taskgraph.transforms.build_schedules import set_build_schedules_optimization
@pytest.mark.parametrize(
"kind,task,expected",
(
pytest.param("build", {"when": "foo"}, None, id="no-op"),
pytest.param(
"build",
{"attributes": {"build_platform": "linux64/opt"}},
{"build": ["linux", "firefox"]},
id="build",
),
pytest.param(
"build-components",
{},
{"build": ["android", "fenix", "focus-android"]},
id="build-components",
),
pytest.param(
"build-bundle",
{"name": "build-bundle-fenix"},
{"build": ["android", "fenix"]},
id="build-bundle-fenix",
),
pytest.param(
"build-apk",
{"name": "fenix"},
{"build": ["android", "fenix"]},
id="build-apk-fenix",
),
pytest.param(
"build-apk",
{"name": "build-apk-focus"},
{"build": ["android", "focus-android"]},
id="build-apk-focus",
),
pytest.param(
"build-apk",
{"name": "build-apk-klar"},
{"build": ["android", "focus-android"]},
id="build-apk-klar",
),
),
)
def test_build_schedules(run_transform, kind, task, expected):
tasks = list(run_transform(set_build_schedules_optimization, [task], kind=kind))
assert len(tasks) == 1
assert tasks[0].get("optimization") == expected
if __name__ == "__main__":
main()