Просмотр исходного кода

交付测试:固定 Root Goal 预检与发布闭包

更新 Root Delivery 合同和发布 fixture,使其携带完整 Direction Goal、StructuredScript coverage 与不可变来源。

验证最终预检、Root ACCEPT 和发布事务仍围绕同一个 Direction、Portfolio 与 StructuredScript 闭包。
SamLee 18 часов назад
Родитель
Сommit
04b29233a6

+ 5 - 1
script_build_host/tests/test_phase_three_contracts.py

@@ -23,6 +23,7 @@ from script_build_host.domain.phase_three_artifacts import (
     canonicalize_legacy_projection,
 )
 from script_build_host.domain.phase_two_artifacts import (
+    GoalCoverage,
     ScriptElementV1,
     ScriptParagraphElementLinkV1,
     ScriptParagraphV1,
@@ -78,7 +79,10 @@ def _script(
                 element_id=element_id,
             ),
         ),
-        source_artifact_refs=(),
+        source_artifact_refs=("script-build://artifact-versions/2",),
+        goal_coverage=(
+            GoalCoverage("goal-1", ("script-build://artifact-versions/2",)),
+        ),
         evidence_refs=(),
         acceptance_notes=(),
     )

+ 15 - 5
script_build_host/tests/test_phase_three_publication.py

@@ -19,8 +19,8 @@ from sqlalchemy.ext.asyncio import (
 from script_build_host.application.legacy_projection import LegacyDetailProjectionService
 from script_build_host.domain.artifacts import (
     ArtifactState,
+    DirectionArtifact,
     DirectionGoal,
-    ScriptDirectionArtifactV1,
 )
 from script_build_host.domain.errors import PublicationReadbackMismatch
 from script_build_host.domain.phase_three_artifacts import (
@@ -29,6 +29,7 @@ from script_build_host.domain.phase_three_artifacts import (
     canonicalize_legacy_projection,
 )
 from script_build_host.domain.phase_two_artifacts import (
+    GoalCoverage,
     ScriptElementV1,
     ScriptParagraphElementLinkV1,
     ScriptParagraphV1,
@@ -79,7 +80,10 @@ def _structured(direction_ref: str) -> StructuredScriptArtifactV1:
         ),
         elements=(ScriptElementV1(30, "hook", "形式", "opening"),),
         paragraph_element_links=(ScriptParagraphElementLinkV1(20, 30),),
-        source_artifact_refs=(),
+        source_artifact_refs=("script-build://artifact-versions/2",),
+        goal_coverage=(
+            GoalCoverage("goal-1", ("script-build://artifact-versions/2",)),
+        ),
         evidence_refs=(),
         acceptance_notes=(),
     )
@@ -145,10 +149,16 @@ async def _publication_fixture(
         task_id="direction",
         attempt_id=f"direction-{build_id}",
         spec_version=1,
-        artifact=ScriptDirectionArtifactV1(
-            goals=(DirectionGoal("goal", "deliver", "source"),),
+        artifact=DirectionArtifact(
+            goals=(
+                DirectionGoal(
+                    "goal",
+                    "deliver",
+                    "source",
+                    success_criteria=("the delivery closes",),
+                ),
+            ),
             evidence_refs=("script-build://artifact-versions/777",),
-            legacy_markdown="# Direction",
         ),
     )
     script = _structured(f"script-build://artifact-versions/{direction.artifact_version_id}")