feat(python/robomp): added authorizes_impl support to task directive processing

- Included authorizes_impl field when attaching threads to directives.
- Added a test case to ensure the author authorization flag is preserved during directive hydration.
This commit is contained in:
can1357
2026-06-21 18:51:24 +02:00
parent 7962a39f86
commit 5a99705797
2 changed files with 28 additions and 2 deletions
+21 -1
View File
@@ -2,7 +2,9 @@
from __future__ import annotations
from robomp.tasks import _directive_from_payload
import pytest
from robomp.tasks import _attach_thread, _directive_from_payload
from robomp.worker import DirectiveInfo
def test_directive_from_payload_parses_pragmas() -> None:
@@ -65,3 +67,21 @@ def test_directive_from_payload_parses_implementation_authorization() -> None:
def test_directive_from_payload_returns_none_for_missing_directive() -> None:
assert _directive_from_payload({}) is None
assert _directive_from_payload({"_robomp_directive": "not-a-mapping"}) is None
async def test_attach_thread_preserves_authorizes_impl(monkeypatch: pytest.MonkeyPatch) -> None:
async def fake_fetch_thread(*args, **kwargs):
return ()
monkeypatch.setattr("robomp.tasks._fetch_thread", fake_fetch_thread)
directive = DirectiveInfo(
body="test body",
author="test_author",
authorizes_impl=True,
)
hydrated = await _attach_thread(None, directive, "owner/repo", 42, is_pr=False)
assert hydrated is not None
assert hydrated.body == "test body"
assert hydrated.author == "test_author"
assert hydrated.authorizes_impl is True