Land the sanitized WH-ENG-20260822-AUDIT-E2-03 report, mark the engagement completed and terminal, and close the applicable E2 harness and risk-nexus delivery tasks. flex-auth stays pending; tenant-engine stays not_applicable. Assistant: grok Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
128 lines
4.5 KiB
Python
128 lines
4.5 KiB
Python
import importlib.util
|
|
import json
|
|
from argparse import Namespace
|
|
from pathlib import Path
|
|
|
|
|
|
SPEC = importlib.util.spec_from_file_location(
|
|
"audit_core_e2_runner", Path("runners/audit_core_e2.py")
|
|
)
|
|
runner = importlib.util.module_from_spec(SPEC)
|
|
assert SPEC.loader is not None
|
|
SPEC.loader.exec_module(runner)
|
|
|
|
|
|
def test_equivalent_denial_includes_digest():
|
|
base = {
|
|
"status": 404, "content_type": "application/json", "count": 1,
|
|
"schema": ["$", "$.error:str"], "run_digest": "same",
|
|
}
|
|
assert runner.equivalent(base, dict(base))
|
|
changed = dict(base, run_digest="different")
|
|
assert not runner.equivalent(base, changed)
|
|
|
|
|
|
def test_event_is_synthetic_and_correlation_bound():
|
|
payload = runner.event("event-a", "tenant-a", "corr", "2026-08-21T23:00:00Z")
|
|
assert payload["id"] == payload["data"]["fixture_id"]
|
|
assert payload["tenant"] == "tenant-a"
|
|
assert payload["correlation_id"] == "corr"
|
|
assert payload["occurred_at"] == "2026-08-21T23:00:00Z"
|
|
|
|
|
|
def test_p95_is_conservative_for_small_runs():
|
|
assert runner._p95([10, 20, 30]) == 30
|
|
|
|
|
|
def test_post_headers_bind_idempotency_key_to_event_id():
|
|
headers = runner.request_headers(
|
|
"secret-not-rendered", "eng-1", "corr-1", {"id": "event-1"}
|
|
)
|
|
assert headers["Idempotency-Key"] == "event-1"
|
|
assert headers["User-Agent"] == "whitehat-security/eng-1"
|
|
|
|
|
|
def test_get_headers_have_no_idempotency_key():
|
|
headers = runner.request_headers("secret", "eng-1", "corr-1", None)
|
|
assert "Idempotency-Key" not in headers
|
|
|
|
|
|
def test_invocation_fixture_set_is_declared_by_current_engagement():
|
|
engagement = json.loads(
|
|
Path("engagements/2026-08-22-audit-core-e2.json").read_text()
|
|
)
|
|
args = Namespace(
|
|
tenant_a="tenant:trial:whitehat-a-20260822",
|
|
tenant_b="tenant:trial:whitehat-b-20260822",
|
|
event_a="whitehat-e2-event-a-20260822",
|
|
event_b="whitehat-e2-event-b-20260822",
|
|
absent_event="whitehat-e2-absent-20260822",
|
|
forged_event="whitehat-e2-forged-b-20260822",
|
|
correlation="whitehat-e2-correlation-20260822",
|
|
)
|
|
|
|
assert runner.invocation_fixture_ids(args) <= set(engagement["fixture_ids"])
|
|
|
|
|
|
def test_retry_invocation_fixture_set_is_declared_and_distinct():
|
|
previous = json.loads(
|
|
Path("engagements/2026-08-22-audit-core-e2.json").read_text()
|
|
)
|
|
engagement = json.loads(
|
|
Path("engagements/2026-08-22-audit-core-e2-02.json").read_text()
|
|
)
|
|
args = Namespace(
|
|
tenant_a="tenant:trial:whitehat-a-20260822-02",
|
|
tenant_b="tenant:trial:whitehat-b-20260822-02",
|
|
event_a="whitehat-e2-event-a-20260822-02",
|
|
event_b="whitehat-e2-event-b-20260822-02",
|
|
absent_event="whitehat-e2-absent-20260822-02",
|
|
forged_event="whitehat-e2-forged-b-20260822-02",
|
|
correlation="whitehat-e2-correlation-20260822-02",
|
|
)
|
|
fixtures = runner.invocation_fixture_ids(args)
|
|
assert fixtures <= set(engagement["fixture_ids"])
|
|
assert fixtures.isdisjoint(previous["fixture_ids"])
|
|
assert engagement["engagement_id"] != previous["engagement_id"]
|
|
|
|
|
|
def test_report_uses_supplied_authorization_id():
|
|
args = Namespace(
|
|
engagement_id="WH-ENG-EXAMPLE",
|
|
authorization_id="operator-session-example",
|
|
target_revision="sha256:" + "a" * 64,
|
|
)
|
|
report = runner.build_report(
|
|
args,
|
|
started="2026-08-22T22:00:00Z",
|
|
outcome="pass",
|
|
attempted_operations=9,
|
|
results=[],
|
|
limitations=[],
|
|
)
|
|
assert report["authorization_id"] == "operator-session-example"
|
|
assert report["engagement_id"] == "WH-ENG-EXAMPLE"
|
|
assert report["attempted_operations"] == 9
|
|
|
|
|
|
def test_third_attempt_fixtures_are_new_and_complete():
|
|
previous = json.loads(
|
|
Path("engagements/2026-08-22-audit-core-e2-02.json").read_text()
|
|
)
|
|
engagement = json.loads(
|
|
Path("engagements/2026-08-22-audit-core-e2-03.json").read_text()
|
|
)
|
|
args = Namespace(
|
|
tenant_a="tenant:trial:whitehat-a-20260822-03",
|
|
tenant_b="tenant:trial:whitehat-b-20260822-03",
|
|
event_a="whitehat-e2-event-a-20260822-03",
|
|
event_b="whitehat-e2-event-b-20260822-03",
|
|
absent_event="whitehat-e2-absent-20260822-03",
|
|
forged_event="whitehat-e2-forged-b-20260822-03",
|
|
correlation="whitehat-e2-correlation-20260822-03",
|
|
)
|
|
fixtures = runner.invocation_fixture_ids(args)
|
|
assert fixtures <= set(engagement["fixture_ids"])
|
|
assert fixtures.isdisjoint(previous["fixture_ids"])
|
|
assert engagement["engagement_id"] != previous["engagement_id"]
|
|
assert engagement["status"] == "completed"
|