Skip to content

Commit 81bc922

Browse files
committed
test: harden expanded attack pack enforcement assertions
1 parent caf9431 commit 81bc922

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

tests/attack_pack/test_attack_pack_expanded_generated.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,13 @@ def _effective_profile(profile: str, taint_level: str) -> str:
9999
return profile
100100

101101

102+
def _expected_witness_taint_level(taint_level: str) -> str:
103+
# Engine contract: unknown and untrusted inputs normalize to untrusted.
104+
if taint_level in {"unknown", "untrusted"}:
105+
return "untrusted"
106+
return taint_level
107+
108+
102109
def _target_for(category: str, sink_type: str, variant: int) -> str:
103110
if sink_type == "shell.exec":
104111
return (
@@ -201,7 +208,24 @@ def test_expanded_attack_pack_blocks(case: ExpandedAttackCase) -> None:
201208
decision = runtime.evaluate(request)
202209

203210
assert decision.decision == "block"
211+
assert decision.sink_type == case.category.sink_type
212+
assert decision.target == case.target
204213
assert decision.reason_code == case.category.expected_reason_code
205214
assert decision.annotations.get("effective_policy_profile") == case.expected_profile
206-
assert runtime.last_witness is not None
207215

216+
witness = runtime.last_witness
217+
assert isinstance(witness, dict)
218+
assert witness.get("request_id") == decision.request_id
219+
assert witness.get("decision") == "block"
220+
assert witness.get("reason_code") == case.category.expected_reason_code
221+
assert witness.get("sink_type") == case.category.sink_type
222+
assert witness.get("target") == case.target
223+
224+
provenance = witness.get("provenance")
225+
assert isinstance(provenance, dict)
226+
assert provenance.get("source") == f"{case.category.name}_payload"
227+
assert provenance.get("taint_level") == _expected_witness_taint_level(case.taint_level)
228+
markers = provenance.get("taint_markers")
229+
assert isinstance(markers, list)
230+
assert case.category.name in markers
231+
assert f"variant_{case.variant:02d}" in markers

0 commit comments

Comments
 (0)