style(ws3): ruff format dispatch_invoker + test (CI ruff format --check)
This commit is contained in:
parent
80c04fc487
commit
bfec8cc4d1
2 changed files with 36 additions and 20 deletions
|
|
@ -79,14 +79,10 @@ def make_dispatch_node(
|
|||
}
|
||||
|
||||
if not thread_id or not diff_text.strip():
|
||||
_LOG.warning(
|
||||
"dispatch_node: missing thread_id or candidate_diff; parking"
|
||||
)
|
||||
_LOG.warning("dispatch_node: missing thread_id or candidate_diff; parking")
|
||||
return _parked
|
||||
if not declared_scope.strip():
|
||||
_LOG.warning(
|
||||
"dispatch_node: empty declared_scope from plan; parking"
|
||||
)
|
||||
_LOG.warning("dispatch_node: empty declared_scope from plan; parking")
|
||||
return _parked
|
||||
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -47,9 +47,7 @@ def _make_fake_pusher() -> tuple[list[dict[str, Any]], Any]:
|
|||
def _make_fake_workflow_dispatcher() -> tuple[list[dict[str, Any]], Any]:
|
||||
calls: list[dict[str, Any]] = []
|
||||
|
||||
def _dispatcher(
|
||||
*, owner: str, repo: str, inputs: dict[str, str], ref: str
|
||||
) -> None:
|
||||
def _dispatcher(*, owner: str, repo: str, inputs: dict[str, str], ref: str) -> None:
|
||||
calls.append(dict(owner=owner, repo=repo, ref=ref, inputs=inputs))
|
||||
|
||||
return calls, _dispatcher
|
||||
|
|
@ -81,7 +79,9 @@ _VALID_STATE: dict[str, Any] = {
|
|||
def test_dispatch_node_happy_path_returns_partial_state() -> None:
|
||||
"""On success the node returns {} (partial state update — DONE comes from graph)."""
|
||||
pusher, dispatcher = _fake_seams()
|
||||
node = make_dispatch_node(owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher)
|
||||
node = make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher
|
||||
)
|
||||
result = node(_VALID_STATE)
|
||||
|
||||
# Remote implementation returns {} on success (graph topology marks DONE).
|
||||
|
|
@ -119,7 +119,9 @@ def test_dispatch_node_passes_task_id_to_head_branch() -> None:
|
|||
def test_dispatch_node_passes_scope_to_workflow_dispatcher() -> None:
|
||||
_, pusher = _make_fake_pusher()
|
||||
disp_calls, dispatcher = _make_fake_workflow_dispatcher()
|
||||
node = make_dispatch_node(owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher)
|
||||
node = make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher
|
||||
)
|
||||
node(_VALID_STATE)
|
||||
|
||||
assert disp_calls, "workflow dispatcher should have been called"
|
||||
|
|
@ -131,7 +133,9 @@ def test_dispatch_node_flattens_scope_list_to_string() -> None:
|
|||
"""Multi-entry scope list is newline-joined into declared_scope."""
|
||||
_, pusher = _make_fake_pusher()
|
||||
disp_calls, dispatcher = _make_fake_workflow_dispatcher()
|
||||
node = make_dispatch_node(owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher)
|
||||
node = make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher
|
||||
)
|
||||
|
||||
state = dict(_VALID_STATE, plan={"scope": ["agent_team/", "tests/"]})
|
||||
node(state)
|
||||
|
|
@ -149,7 +153,9 @@ def test_dispatch_node_flattens_scope_list_to_string() -> None:
|
|||
def test_dispatch_node_parks_on_missing_thread_id() -> None:
|
||||
_, pusher = _make_fake_pusher()
|
||||
disp_calls, dispatcher = _make_fake_workflow_dispatcher()
|
||||
node = make_dispatch_node(owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher)
|
||||
node = make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher
|
||||
)
|
||||
|
||||
state = dict(_VALID_STATE, thread_id="")
|
||||
result = node(state)
|
||||
|
|
@ -162,7 +168,9 @@ def test_dispatch_node_parks_on_missing_thread_id() -> None:
|
|||
def test_dispatch_node_parks_on_missing_diff() -> None:
|
||||
_, pusher = _make_fake_pusher()
|
||||
disp_calls, dispatcher = _make_fake_workflow_dispatcher()
|
||||
node = make_dispatch_node(owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher)
|
||||
node = make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher
|
||||
)
|
||||
|
||||
state = dict(_VALID_STATE, candidate_diff="")
|
||||
result = node(state)
|
||||
|
|
@ -174,7 +182,9 @@ def test_dispatch_node_parks_on_missing_diff() -> None:
|
|||
def test_dispatch_node_parks_on_whitespace_only_diff() -> None:
|
||||
_, pusher = _make_fake_pusher()
|
||||
disp_calls, dispatcher = _make_fake_workflow_dispatcher()
|
||||
node = make_dispatch_node(owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher)
|
||||
node = make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher
|
||||
)
|
||||
|
||||
state = dict(_VALID_STATE, candidate_diff=" \n ")
|
||||
result = node(state)
|
||||
|
|
@ -186,7 +196,9 @@ def test_dispatch_node_parks_on_whitespace_only_diff() -> None:
|
|||
def test_dispatch_node_parks_on_empty_scope() -> None:
|
||||
_, pusher = _make_fake_pusher()
|
||||
disp_calls, dispatcher = _make_fake_workflow_dispatcher()
|
||||
node = make_dispatch_node(owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher)
|
||||
node = make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher
|
||||
)
|
||||
|
||||
state = dict(_VALID_STATE, plan={"scope": []})
|
||||
result = node(state)
|
||||
|
|
@ -198,7 +210,9 @@ def test_dispatch_node_parks_on_empty_scope() -> None:
|
|||
def test_dispatch_node_parks_on_none_plan() -> None:
|
||||
_, pusher = _make_fake_pusher()
|
||||
disp_calls, dispatcher = _make_fake_workflow_dispatcher()
|
||||
node = make_dispatch_node(owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher)
|
||||
node = make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher
|
||||
)
|
||||
|
||||
state = dict(_VALID_STATE, plan=None)
|
||||
result = node(state)
|
||||
|
|
@ -210,7 +224,9 @@ def test_dispatch_node_parks_on_none_plan() -> None:
|
|||
def test_dispatch_node_parks_on_non_dict_plan() -> None:
|
||||
_, pusher = _make_fake_pusher()
|
||||
disp_calls, dispatcher = _make_fake_workflow_dispatcher()
|
||||
node = make_dispatch_node(owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher)
|
||||
node = make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher
|
||||
)
|
||||
|
||||
state = dict(_VALID_STATE, plan="not-a-dict")
|
||||
result = node(state)
|
||||
|
|
@ -227,7 +243,9 @@ def test_dispatch_node_parks_on_dispatcher_error() -> None:
|
|||
raise DispatcherError("invalid owner/repo 'x'/'y'")
|
||||
|
||||
_, dispatcher = _make_fake_workflow_dispatcher()
|
||||
node = make_dispatch_node(owner="org", repo="repo", pusher=_bad_pusher, dispatcher=dispatcher)
|
||||
node = make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=_bad_pusher, dispatcher=dispatcher
|
||||
)
|
||||
result = node(_VALID_STATE)
|
||||
|
||||
assert result.get("status") == TaskStatus.PARKED.value
|
||||
|
|
@ -403,7 +421,9 @@ def test_coordinator_dispatch_node_wiring_without_build_verify_raises(
|
|||
pusher, dispatcher = _fake_seams()
|
||||
|
||||
def _factory() -> Any:
|
||||
return make_dispatch_node(owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher)
|
||||
return make_dispatch_node(
|
||||
owner="org", repo="repo", pusher=pusher, dispatcher=dispatcher
|
||||
)
|
||||
|
||||
def _stub_clarify_node() -> Any:
|
||||
return MagicMock()
|
||||
|
|
|
|||
Reference in a new issue