diff --git a/temporalio/contrib/aws/s3driver/aioboto3.py b/temporalio/contrib/aws/s3driver/aioboto3.py index 971ccfdba..f6eda82ec 100644 --- a/temporalio/contrib/aws/s3driver/aioboto3.py +++ b/temporalio/contrib/aws/s3driver/aioboto3.py @@ -40,7 +40,7 @@ def describe(self) -> Mapping[str, str]: messages to short-circuit the most common silent 403 misconfiguration. """ region = self._client.meta.region_name - return {"region": region} if region else {} + return {"client_region": region} if region else {} async def object_exists(self, *, bucket: str, key: str) -> bool: """Check existence via aioboto3's ``head_object``.""" diff --git a/tests/contrib/aws/s3driver/conftest.py b/tests/contrib/aws/s3driver/conftest.py index 71a0a8749..6213014af 100644 --- a/tests/contrib/aws/s3driver/conftest.py +++ b/tests/contrib/aws/s3driver/conftest.py @@ -14,7 +14,7 @@ from temporalio.contrib.aws.s3driver.aioboto3 import new_aioboto3_client BUCKET = "test-bucket" -REGION = "us-east-1" +CLIENT_REGION = "us-east-1" def _find_free_port() -> int: @@ -50,7 +50,7 @@ async def aioboto3_client(moto_server_url: str) -> AsyncIterator[S3Client]: session = aioboto3.Session() async with session.client( "s3", - region_name=REGION, + region_name=CLIENT_REGION, endpoint_url=moto_server_url, aws_access_key_id="testing", aws_secret_access_key="testing", diff --git a/tests/contrib/aws/s3driver/test_s3driver.py b/tests/contrib/aws/s3driver/test_s3driver.py index fb8c60544..64e0d53ab 100644 --- a/tests/contrib/aws/s3driver/test_s3driver.py +++ b/tests/contrib/aws/s3driver/test_s3driver.py @@ -36,7 +36,7 @@ StorageDriverStoreContext, StorageDriverWorkflowInfo, ) -from tests.contrib.aws.s3driver.conftest import BUCKET, REGION +from tests.contrib.aws.s3driver.conftest import BUCKET, CLIENT_REGION _CONVERTER = JSONPlainPayloadConverter() @@ -620,7 +620,7 @@ async def test_store_nonexistent_bucket_raises( await driver.store(make_store_context(), [payload]) assert ( str(exc_info.value) - == f"S3StorageDriver store failed [bucket={bucket}, key={expected_key}, region={REGION}]" + == f"S3StorageDriver store failed [bucket={bucket}, key={expected_key}, client_region={CLIENT_REGION}]" ) assert isinstance(exc_info.value.__cause__, ClientError) assert ( @@ -638,7 +638,7 @@ async def test_retrieve_nonexistent_key_raises( await driver.retrieve(StorageDriverRetrieveContext(), [claim]) assert ( str(exc_info.value) - == f"S3StorageDriver retrieve failed [bucket={BUCKET}, key={key}, region={REGION}]" + == f"S3StorageDriver retrieve failed [bucket={BUCKET}, key={key}, client_region={CLIENT_REGION}]" ) assert isinstance(exc_info.value.__cause__, ClientError) assert ( @@ -657,7 +657,7 @@ async def test_retrieve_nonexistent_bucket_raises( await driver.retrieve(StorageDriverRetrieveContext(), [claim]) assert ( str(exc_info.value) - == f"S3StorageDriver retrieve failed [bucket={bucket}, key={key}, region={REGION}]" + == f"S3StorageDriver retrieve failed [bucket={bucket}, key={key}, client_region={CLIENT_REGION}]" ) assert isinstance(exc_info.value.__cause__, ClientError) assert ( @@ -856,7 +856,7 @@ def _make_client(self, region: str | None) -> _Aioboto3StorageDriverClient: def test_returns_region(self) -> None: client = self._make_client(region="ap-southeast-1") - assert client.describe() == {"region": "ap-southeast-1"} + assert client.describe() == {"client_region": "ap-southeast-1"} def test_omits_region_when_none(self) -> None: client = self._make_client(region=None) diff --git a/tests/contrib/aws/s3driver/test_s3driver_worker.py b/tests/contrib/aws/s3driver/test_s3driver_worker.py index 4478b06fe..61729535f 100644 --- a/tests/contrib/aws/s3driver/test_s3driver_worker.py +++ b/tests/contrib/aws/s3driver/test_s3driver_worker.py @@ -25,7 +25,7 @@ from temporalio.converter import ExternalStorage, JSONPlainPayloadConverter from temporalio.exceptions import ActivityError, ApplicationError from temporalio.testing import WorkflowEnvironment -from tests.contrib.aws.s3driver.conftest import BUCKET, REGION +from tests.contrib.aws.s3driver.conftest import BUCKET, CLIENT_REGION from tests.contrib.aws.s3driver.workflows import ( LARGE, ChildWorkflow, @@ -463,7 +463,7 @@ async def test_s3_store_failure_surfaces_in_workflow_history( session = aioboto3.Session() async with session.client( "s3", - region_name=REGION, + region_name=CLIENT_REGION, endpoint_url=moto_server_url, aws_access_key_id="testing", aws_secret_access_key="testing", @@ -506,4 +506,4 @@ async def test_s3_store_failure_surfaces_in_workflow_history( msg = app_error.message assert f"S3StorageDriver store failed [bucket={bad_bucket}, key=" in msg assert f"/wt/LargeOutputNoRetryWorkflow/wi/{workflow_id}/ri/" in msg - assert f"/d/sha256/{expected_hash}, region={REGION}]" in msg + assert f"/d/sha256/{expected_hash}, client_region={CLIENT_REGION}]" in msg