fix(AP2.4): product_milestone_driven ohne work_cycles ? generic-kompatibel.
All checks were successful
Deploy Development / deploy (push) Successful in 43s
Test Suite / pytest-backend (push) Successful in 3m13s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 18s
Test Suite / playwright-smoke (push) Successful in 13s
All checks were successful
Deploy Development / deploy (push) Successful in 43s
Test Suite / pytest-backend (push) Successful in 3m13s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 18s
Test Suite / playwright-smoke (push) Successful in 13s
om_capabilities-Pruefung blockierte Methodenwechsel auf initiative.generic; Gate-Slices reichen fuer Meilenstein-Steuerung. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
d3bf3c36e0
commit
4fbb3b3469
|
|
@ -3,7 +3,7 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from steering.graph.profiles import STRICT
|
from steering.graph.profiles import STRICT
|
||||||
from steering.methods.registrations._helpers import ELEM_NEXT, SLICES_PRODUCT
|
from steering.methods.registrations._helpers import ELEM_NEXT, SLICES_OM_STANDARD
|
||||||
from steering.methods.registry import MethodDefinition, get_method, register_method
|
from steering.methods.registry import MethodDefinition, get_method, register_method
|
||||||
|
|
||||||
_PRODUCT_STEPS = (
|
_PRODUCT_STEPS = (
|
||||||
|
|
@ -33,7 +33,7 @@ def register() -> None:
|
||||||
description="Meilenstein-orientierte Steuerung für Produkt- und Projektentwicklung",
|
description="Meilenstein-orientierte Steuerung für Produkt- und Projektentwicklung",
|
||||||
default_lifecycle_steps=_PRODUCT_STEPS,
|
default_lifecycle_steps=_PRODUCT_STEPS,
|
||||||
next_action_strategy_key="product_milestone_driven",
|
next_action_strategy_key="product_milestone_driven",
|
||||||
data_slices=SLICES_PRODUCT,
|
data_slices=SLICES_OM_STANDARD,
|
||||||
compatible_archetype_keys=frozenset(
|
compatible_archetype_keys=frozenset(
|
||||||
{
|
{
|
||||||
"initiative.product",
|
"initiative.product",
|
||||||
|
|
@ -42,8 +42,7 @@ def register() -> None:
|
||||||
"initiative.program",
|
"initiative.program",
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
steering_elements=ELEM_NEXT
|
steering_elements=ELEM_NEXT | frozenset({"gate_fulfillment"}),
|
||||||
| frozenset({"gate_fulfillment", "work_cycle_scope"}),
|
|
||||||
graph_profile=STRICT,
|
graph_profile=STRICT,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,14 @@ def test_list_compatible_methods_product_excludes_maturity():
|
||||||
assert "maturity_progression" not in keys
|
assert "maturity_progression" not in keys
|
||||||
|
|
||||||
|
|
||||||
|
def test_product_milestone_driven_compatible_with_generic():
|
||||||
|
from steering.methods.registry import list_compatible_methods
|
||||||
|
|
||||||
|
methods = list_compatible_methods("initiative.generic")
|
||||||
|
keys = {m.key for m in methods}
|
||||||
|
assert "product_milestone_driven" in keys
|
||||||
|
|
||||||
|
|
||||||
def test_operating_context_includes_method_contract(client):
|
def test_operating_context_includes_method_contract(client):
|
||||||
from tests.factories import provision_user_in_tenant
|
from tests.factories import provision_user_in_tenant
|
||||||
from tests.test_initiatives_actions import _auth, _create_initiative, _login
|
from tests.test_initiatives_actions import _auth, _create_initiative, _login
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user