Skip to content

Commit 35623e1

Browse files
committed
generator: add support for "graph_config" verifications
1 parent 70715a8 commit 35623e1

3 files changed

Lines changed: 18 additions & 0 deletions

File tree

src/taskgraph/generator.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ def _run(self):
378378

379379
# Initial verifications that don't depend on any generation state.
380380
self.verify("initial")
381+
self.verify("graph_config", graph_config)
381382

382383
if callable(self._parameters):
383384
parameters = self._parameters(graph_config)

src/taskgraph/util/verify.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ def verify(self):
3636
self.func()
3737

3838

39+
@dataclass(frozen=True)
40+
class GraphConfigVerification(Verification):
41+
def verify(self, graph_config: GraphConfig):
42+
self.func(graph_config)
43+
44+
3945
@dataclass(frozen=True)
4046
class GraphVerification(Verification):
4147
"""Verification for a TaskGraph object."""
@@ -95,6 +101,7 @@ class VerificationSequence:
95101
_verifications: Dict = field(default_factory=dict)
96102
_verification_types = {
97103
"graph": GraphVerification,
104+
"graph_config": GraphConfigVerification,
98105
"initial": InitialVerification,
99106
"kinds": KindsVerification,
100107
"parameters": ParametersVerification,

test/test_util_verify.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from taskgraph.task import Task
1212
from taskgraph.util.treeherder import split_symbol
1313
from taskgraph.util.verify import (
14+
GraphConfigVerification,
1415
GraphVerification,
1516
ParametersVerification,
1617
VerificationSequence,
@@ -38,6 +39,8 @@ def inner(name, **kwargs):
3839

3940
if isinstance(v, GraphVerification):
4041
assert "graph" in kwargs
42+
43+
if isinstance(v, (GraphVerification, GraphConfigVerification)):
4144
kwargs.setdefault("graph_config", graph_config)
4245

4346
if isinstance(v, (GraphVerification, ParametersVerification)):
@@ -94,6 +97,13 @@ def assert_simple_verification(arg):
9497
1,
9598
id="ParametersVerification",
9699
),
100+
pytest.param(
101+
"graph_config",
102+
("passed-thru",),
103+
assert_simple_verification,
104+
1,
105+
id="GraphConfigVerification",
106+
),
97107
),
98108
)
99109
def test_verification_types(name, input, run_assertions, expected_called):

0 commit comments

Comments
 (0)