|
@@ -41,6 +41,10 @@ from script_build_host.domain.artifacts import (
|
|
|
ArtifactVersion,
|
|
ArtifactVersion,
|
|
|
EvidenceRecordV1,
|
|
EvidenceRecordV1,
|
|
|
)
|
|
)
|
|
|
|
|
+from script_build_host.domain.input_compatibility import (
|
|
|
|
|
+ AcceptedInputSource,
|
|
|
|
|
+ validate_accepted_input,
|
|
|
|
|
+)
|
|
|
from script_build_host.domain.phase_two_artifacts import (
|
|
from script_build_host.domain.phase_two_artifacts import (
|
|
|
CandidateLineageV1,
|
|
CandidateLineageV1,
|
|
|
ParagraphArtifactV1,
|
|
ParagraphArtifactV1,
|
|
@@ -64,6 +68,16 @@ SCOPE = "script-build://scopes/opening"
|
|
|
WRITE = "script-build://writes/paragraphs/1"
|
|
WRITE = "script-build://writes/paragraphs/1"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+def test_candidate_portfolio_can_pin_the_active_direction_explicitly() -> None:
|
|
|
|
|
+ validate_accepted_input(
|
|
|
|
|
+ consumer_kind=ScriptTaskKind.CANDIDATE_PORTFOLIO,
|
|
|
|
|
+ consumer_scope="script-build://scopes/full",
|
|
|
|
|
+ producer_kind=ScriptTaskKind.DIRECTION,
|
|
|
|
|
+ producer_scope="script-build://scopes/full",
|
|
|
|
|
+ source=AcceptedInputSource.EXPLICIT,
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
def _contract(
|
|
def _contract(
|
|
|
*,
|
|
*,
|
|
|
kind: ScriptTaskKind = ScriptTaskKind.PARAGRAPH,
|
|
kind: ScriptTaskKind = ScriptTaskKind.PARAGRAPH,
|
|
@@ -120,7 +134,6 @@ def _paragraph_artifact(*, text: str = "specific opening") -> ParagraphArtifactV
|
|
|
def _task(task_id: str, *, parent: str | None, kind: str, status: TaskStatus) -> TaskRecord:
|
|
def _task(task_id: str, *, parent: str | None, kind: str, status: TaskStatus) -> TaskRecord:
|
|
|
return TaskRecord(
|
|
return TaskRecord(
|
|
|
task_id=task_id,
|
|
task_id=task_id,
|
|
|
- goal_id=None,
|
|
|
|
|
parent_task_id=parent,
|
|
parent_task_id=parent,
|
|
|
display_path=task_id,
|
|
display_path=task_id,
|
|
|
specs=[
|
|
specs=[
|