Make audit fixture retries deterministic
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
This commit is contained in:
parent
8a97fac17f
commit
cf696f09d5
3 changed files with 18 additions and 7 deletions
|
|
@ -150,7 +150,7 @@ def request_headers(token: str, engagement_id: str, correlation: str,
|
|||
return headers
|
||||
|
||||
|
||||
def event(event_id: str, tenant: str, correlation: str) -> dict[str, Any]:
|
||||
def event(event_id: str, tenant: str, correlation: str, occurred_at: str) -> dict[str, Any]:
|
||||
return {
|
||||
"id": event_id,
|
||||
"type": "whitehat.fixture",
|
||||
|
|
@ -158,7 +158,7 @@ def event(event_id: str, tenant: str, correlation: str) -> dict[str, Any]:
|
|||
"subject": event_id,
|
||||
"tenant": tenant,
|
||||
"correlation_id": correlation,
|
||||
"occurred_at": now(),
|
||||
"occurred_at": occurred_at,
|
||||
"data": {"fixture_id": event_id},
|
||||
}
|
||||
|
||||
|
|
@ -182,6 +182,8 @@ def main() -> None:
|
|||
parser.add_argument("--event-b", required=True)
|
||||
parser.add_argument("--absent-event", required=True)
|
||||
parser.add_argument("--correlation", required=True)
|
||||
parser.add_argument("--occurred-at", required=True,
|
||||
help="fixed RFC3339 fixture time; makes retries idempotent")
|
||||
parser.add_argument("--rate", type=int, default=10)
|
||||
parser.add_argument("--max-requests", type=int, default=30)
|
||||
parser.add_argument("--timeout", type=float, default=5)
|
||||
|
|
@ -194,9 +196,11 @@ def main() -> None:
|
|||
limitations: list[str] = []
|
||||
try:
|
||||
seed_a = client.call(args.token_a_file, "POST", "/v1/events",
|
||||
event(args.event_a, args.tenant_a, args.correlation))
|
||||
event(args.event_a, args.tenant_a, args.correlation,
|
||||
args.occurred_at))
|
||||
seed_b = client.call(args.token_b_file, "POST", "/v1/events",
|
||||
event(args.event_b, args.tenant_b, args.correlation))
|
||||
event(args.event_b, args.tenant_b, args.correlation,
|
||||
args.occurred_at))
|
||||
if seed_a[0] not in (200, 202) or seed_b[0] not in (200, 202):
|
||||
raise Abort("fixture seeding did not reach accepted/duplicate state")
|
||||
|
||||
|
|
@ -237,7 +241,7 @@ def main() -> None:
|
|||
forged = "whitehat-e2-forged-b-20260821"
|
||||
forged_response = client.observation(client.call(
|
||||
args.token_a_file, "POST", "/v1/events",
|
||||
event(forged, args.tenant_b, args.correlation)
|
||||
event(forged, args.tenant_b, args.correlation, args.occurred_at)
|
||||
), (forged, args.tenant_b))
|
||||
forged_state = client.observation(client.call(
|
||||
args.token_b_file, "GET", f"/v1/events/{forged}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue