Files
roboco/tests/unit/gateway/test_claim_guards_direct.py
T

40 lines
1.4 KiB
Python
Raw Normal View History

2026-05-06 21:02:31 +02:00
"""Direct unit tests for claim_guards helpers (branches only)."""
from __future__ import annotations
from types import SimpleNamespace
from uuid import uuid4
2026-05-11 02:15:47 +02:00
from roboco.services.gateway.claim_guards import sibling_sequence_guard
2026-05-06 21:02:31 +02:00
def test_sibling_sequence_guard_root_task_passes() -> None:
2026-05-11 02:15:47 +02:00
"""parent_task_id None → no guard."""
2026-05-06 21:02:31 +02:00
task = SimpleNamespace(id=uuid4(), parent_task_id=None, sequence=5)
assert sibling_sequence_guard(task, []) is None
def test_sibling_sequence_guard_sequence_zero_passes() -> None:
2026-05-11 02:15:47 +02:00
"""sequence==0 always allowed."""
2026-05-06 21:02:31 +02:00
task = SimpleNamespace(id=uuid4(), parent_task_id=uuid4(), sequence=0)
assert sibling_sequence_guard(task, []) is None
def test_sibling_sequence_guard_blocks_when_earlier_sibling_open() -> None:
parent = uuid4()
target = SimpleNamespace(id=uuid4(), parent_task_id=parent, sequence=2)
earlier = SimpleNamespace(
id=uuid4(), parent_task_id=parent, sequence=1, status="in_progress"
)
env = sibling_sequence_guard(target, [earlier])
assert env is not None
def test_sibling_sequence_guard_passes_when_earlier_sibling_terminal() -> None:
parent = uuid4()
target = SimpleNamespace(id=uuid4(), parent_task_id=parent, sequence=2)
earlier = SimpleNamespace(
id=uuid4(), parent_task_id=parent, sequence=1, status="completed"
)
assert sibling_sequence_guard(target, [earlier]) is None