mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-03 02:22:24 +00:00
test(s3_v2): cover sync upload path for KMS key id header
This commit is contained in:
parent
b463ddf92c
commit
0d0c9314a1
1 changed files with 42 additions and 0 deletions
|
|
@ -1465,6 +1465,48 @@ async def test_async_upload_omits_kms_key_id_header_when_not_configured():
|
|||
assert "x-amz-server-side-encryption-aws-kms-key-id" not in headers
|
||||
|
||||
|
||||
def test_sync_upload_sets_kms_key_id_header_when_configured(monkeypatch):
|
||||
"""The sync upload path must also send the KMS key id header when configured."""
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from litellm.types.integrations.s3_v2 import s3BatchLoggingElement
|
||||
|
||||
logger = S3Logger(
|
||||
s3_bucket_name="test-bucket",
|
||||
s3_aws_access_key_id="test-key",
|
||||
s3_aws_secret_access_key="test-secret",
|
||||
s3_region_name="us-east-1",
|
||||
s3_server_side_encryption="aws:kms",
|
||||
s3_server_side_encryption_kms_key_id="arn:aws:kms:us-east-1:123456789012:key/abc-123",
|
||||
)
|
||||
|
||||
test_element = s3BatchLoggingElement(
|
||||
s3_object_key="2025-09-14/test-sync-kms.json",
|
||||
payload={"test": "sync-kms"},
|
||||
s3_object_download_filename="test-sync-kms.json",
|
||||
)
|
||||
_require_non_security_md5(monkeypatch)
|
||||
|
||||
response = MagicMock()
|
||||
response.status_code = 200
|
||||
response.raise_for_status = MagicMock()
|
||||
mock_sync_client = MagicMock()
|
||||
mock_sync_client.put.return_value = response
|
||||
|
||||
with patch(
|
||||
"litellm.integrations.s3_v2._get_httpx_client",
|
||||
return_value=mock_sync_client,
|
||||
):
|
||||
logger.upload_data_to_s3(test_element)
|
||||
|
||||
headers = mock_sync_client.put.call_args.kwargs["headers"]
|
||||
assert headers["x-amz-server-side-encryption"] == "aws:kms"
|
||||
assert (
|
||||
headers["x-amz-server-side-encryption-aws-kms-key-id"]
|
||||
== "arn:aws:kms:us-east-1:123456789012:key/abc-123"
|
||||
)
|
||||
|
||||
|
||||
def test_s3_server_side_encryption_kms_key_id_read_from_callback_params():
|
||||
"""s3_server_side_encryption_kms_key_id can be configured via s3_callback_params."""
|
||||
import litellm
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue