Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/taskgraph/transforms/task_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,10 @@
@transforms.add
def render_task(config, tasks):
for task in tasks:
sub_config = task.pop("task-context")
sub_config = task.pop("task-context", None)
if sub_config is None:
yield task
continue
params_context = {}
for var, path in sub_config.pop("from-parameters", {}).items():
if isinstance(path, str):
Expand Down
28 changes: 19 additions & 9 deletions test/test_transform_task_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from copy import deepcopy
from pprint import pprint

import pytest
from pytest_taskgraph import FakeParameters

from taskgraph.transforms import task_context
Expand All @@ -14,7 +15,7 @@
here = os.path.abspath(os.path.dirname(__file__))

TASK_DEFAULTS = {
"description": "fake description {object} {file} {param} {object_and_file}"
"description": "fake description {object} {file} {param} {object_and_file} "
"{object_and_param} {file_and_param} {object_file_and_param} {param_fallback} {name}",
"name": "fake-task-name",
"task-context": {
Expand All @@ -37,11 +38,24 @@
],
},
}
EXPECTED_DESCRIPTION = (
"fake description object file param object-overrides-file "
"param-overrides-object param-overrides-file param-overrides-all default fake-task-name"
)
NO_CONTEXT = deepcopy(TASK_DEFAULTS)
del NO_CONTEXT["task-context"]


def test_transforms(request, run_transform, graph_config):
task = deepcopy(TASK_DEFAULTS)

@pytest.mark.parametrize(
"task,description",
(
pytest.param(deepcopy(TASK_DEFAULTS), EXPECTED_DESCRIPTION, id="with-context"),
pytest.param(
deepcopy(NO_CONTEXT), TASK_DEFAULTS["description"], id="no-context"
),
),
)
def test_transforms(request, run_transform, graph_config, task, description):
params = FakeParameters(
{
"param": "param",
Expand Down Expand Up @@ -77,8 +91,4 @@ def test_transforms(request, run_transform, graph_config):
print("Dumping task:")
pprint(task, indent=2)

assert (
task["description"]
== "fake description object file param object-overrides-file"
"param-overrides-object param-overrides-file param-overrides-all default fake-task-name"
)
assert task["description"] == description
Loading