Skip to content

Commit 6c0e83a

Browse files
authored
generator: add support for "graph_config" verifications (#802)
1 parent e8283fe commit 6c0e83a

File tree

4 files changed

+19
-1
lines changed

4 files changed

+19
-1
lines changed

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_generator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ def test_verifications(mocker, maketgg):
175175
m = mocker.patch.object(generator, "verifications")
176176
tgg = maketgg(["_fake-t-2"], enable_verifications=True)
177177
tgg.morphed_task_graph
178-
assert m.call_count == 9
178+
assert m.call_count == 10
179179

180180
m = mocker.patch.object(generator, "verifications")
181181
tgg = maketgg(["_fake-t-2"], enable_verifications=False)

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)