Improved datamodel and deterministic generation

This commit is contained in:
2026-04-30 01:29:29 +02:00
parent 973d4bbe7c
commit 26e87ab52c
14 changed files with 848 additions and 39 deletions

View File

@@ -813,13 +813,33 @@ def test_approve_candidate_graph_publishes_ability_map_once(tmp_path):
assert len(ability_map.abilities) == 1
assert len(second_approval.abilities) == 1
assert ability_map.abilities[0].name == "Support Example"
assert ability_map.abilities[0].primary_class == "developer-tooling"
assert ability_map.abilities[0].attributes == ["interface"]
assert ability_map.abilities[0].capabilities[0].primary_class == "interface"
assert ability_map.abilities[0].capabilities[0].features[0].location == "app.py"
assert ability_map.abilities[0].capabilities[0].features[0].primary_class == "API"
assert ability_map.abilities[0].capabilities[0].features[0].attributes == [
"API",
"surface",
"http",
]
assert ability_map.abilities[0].capabilities[0].features[0].source_refs
assert ability_map.abilities[0].capabilities[0].features[0].source_refs[0].line == 3
assert ability_map.abilities[0].capabilities[0].evidence[0].source_refs
candidate_graph = service.candidate_graph(repository.id, summary.analysis_run.id)
assert candidate_graph.abilities[0].status == "approved"
assert candidate_graph.abilities[0].primary_class == "developer-tooling"
assert candidate_graph.abilities[0].capabilities[0].primary_class == "interface"
assert (
candidate_graph.abilities[0].capabilities[0].features[0].primary_class
== "API"
)
assert candidate_graph.abilities[0].capabilities[0].features[0].attributes == [
"API",
"surface",
"http",
]
decisions = service.list_review_decisions(repository.id, summary.analysis_run.id)
assert decisions[0].action == "approve_candidate_graph"
assert decisions[0].notes == "Looks good for the first pass."