Skip to content
26 changes: 26 additions & 0 deletions tests/test_audit_logs.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,32 @@ def test_sends_idempotency_key(
assert request_kwargs["headers"]["idempotency-key"] == idempotency_key
assert response is None

def test_auto_generates_idempotency_key(
self, mock_audit_log_event, capture_and_mock_http_client_request
):
"""Test that idempotency key is auto-generated when not provided."""
organization_id = "org_123456789"

request_kwargs = capture_and_mock_http_client_request(
self.http_client, {"success": True}, 200
)

response = self.audit_logs.create_event(
organization_id=organization_id,
event=mock_audit_log_event,
# No idempotency_key provided
)

# Assert header exists and has a non-empty value
assert "idempotency-key" in request_kwargs["headers"]
idempotency_key = request_kwargs["headers"]["idempotency-key"]
assert idempotency_key and idempotency_key.strip()
# Assert the auto-generated key has the correct prefix
assert idempotency_key.startswith("workos-python-")
# Assert the key has the expected UUID format after the prefix
assert len(idempotency_key) > len("workos-python-")
assert response is None

def test_throws_unauthorized_exception(
self, mock_audit_log_event, mock_http_client_with_response
):
Expand Down
Loading