Skip to content

Commit 078bf82

Browse files
drernieclaude
andcommitted
fix(admin): address PR review comments
- Use str | None annotation on BucketNotFoundError - Omit SNS ARN suffix when ARN is None (avoids misleading 'None' in message) - Fix CHANGELOG PR link (#4776#4777) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent f05c2a5 commit 078bf82

File tree

4 files changed

+14
-10
lines changed

4 files changed

+14
-10
lines changed

api/python/quilt3/admin/buckets.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,13 @@ def _handle_bucket_add_result(result, name: str, sns_notification_arn: T.Optiona
9797
if isinstance(result, _graphql_client.BucketAddBucketAddInsufficientPermissions):
9898
raise exceptions.Quilt3AdminError(result.message)
9999
if isinstance(result, _graphql_client.BucketAddBucketAddSnsInvalid):
100-
raise exceptions.Quilt3AdminError(f"Invalid SNS notification ARN: {sns_notification_arn!r}")
100+
arn_info = f": {sns_notification_arn!r}" if sns_notification_arn else ""
101+
raise exceptions.Quilt3AdminError(f"Invalid SNS notification ARN{arn_info}")
101102
if isinstance(result, _graphql_client.BucketAddBucketAddNotificationConfigurationError):
102103
raise exceptions.Quilt3AdminError("Notification configuration error")
103104
if isinstance(result, _graphql_client.BucketAddBucketAddNotificationTopicNotFound):
104-
raise exceptions.Quilt3AdminError(f"Notification topic not found: {sns_notification_arn!r}")
105+
arn_info = f": {sns_notification_arn!r}" if sns_notification_arn else ""
106+
raise exceptions.Quilt3AdminError(f"Notification topic not found{arn_info}")
105107
if isinstance(result, _graphql_client.BucketAddBucketAddBucketFileExtensionsToIndexInvalid):
106108
raise exceptions.Quilt3AdminError("Invalid file extensions to index")
107109
if isinstance(result, _graphql_client.BucketAddBucketAddBucketIndexContentBytesInvalid):
@@ -179,11 +181,13 @@ def _handle_bucket_update_result(result, name: str, sns_notification_arn: T.Opti
179181
if isinstance(result, _graphql_client.BucketUpdateBucketUpdateInsufficientPermissions):
180182
raise exceptions.Quilt3AdminError(result.message)
181183
if isinstance(result, _graphql_client.BucketUpdateBucketUpdateSnsInvalid):
182-
raise exceptions.Quilt3AdminError(f"Invalid SNS notification ARN: {sns_notification_arn!r}")
184+
arn_info = f": {sns_notification_arn!r}" if sns_notification_arn else ""
185+
raise exceptions.Quilt3AdminError(f"Invalid SNS notification ARN{arn_info}")
183186
if isinstance(result, _graphql_client.BucketUpdateBucketUpdateNotificationConfigurationError):
184187
raise exceptions.Quilt3AdminError("Notification configuration error")
185188
if isinstance(result, _graphql_client.BucketUpdateBucketUpdateNotificationTopicNotFound):
186-
raise exceptions.Quilt3AdminError(f"Notification topic not found: {sns_notification_arn!r}")
189+
arn_info = f": {sns_notification_arn!r}" if sns_notification_arn else ""
190+
raise exceptions.Quilt3AdminError(f"Notification topic not found{arn_info}")
187191
if isinstance(result, _graphql_client.BucketUpdateBucketUpdateBucketFileExtensionsToIndexInvalid):
188192
raise exceptions.Quilt3AdminError("Invalid file extensions to index")
189193
if isinstance(result, _graphql_client.BucketUpdateBucketUpdateBucketIndexContentBytesInvalid):

api/python/quilt3/admin/exceptions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ def __init__(self):
1010

1111

1212
class BucketNotFoundError(Quilt3AdminError):
13-
def __init__(self, name: str = None):
13+
def __init__(self, name: str | None = None):
1414
super().__init__(f"Bucket not found: {name!r}" if name else "Bucket not found")

api/python/tests/test_admin_api.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -453,9 +453,9 @@ def test_tabulator_set_open_query():
453453
admin.Quilt3AdminError,
454454
"Permission denied for prefix",
455455
),
456-
({"__typename": "SnsInvalid"}, admin.Quilt3AdminError, "Invalid SNS notification ARN: None"),
456+
({"__typename": "SnsInvalid"}, admin.Quilt3AdminError, "Invalid SNS notification ARN"),
457457
({"__typename": "NotificationConfigurationError"}, admin.Quilt3AdminError, "Notification configuration error"),
458-
({"__typename": "NotificationTopicNotFound"}, admin.Quilt3AdminError, "Notification topic not found: None"),
458+
({"__typename": "NotificationTopicNotFound"}, admin.Quilt3AdminError, "Notification topic not found"),
459459
({"__typename": "BucketFileExtensionsToIndexInvalid"}, admin.Quilt3AdminError, "Invalid file extensions to index"),
460460
({"__typename": "BucketIndexContentBytesInvalid"}, admin.Quilt3AdminError, "Invalid index content bytes"),
461461
({"__typename": "SubscriptionInvalid"}, admin.Quilt3AdminError, "Invalid subscription"),
@@ -467,9 +467,9 @@ def test_tabulator_set_open_query():
467467
admin.Quilt3AdminError,
468468
"Permission denied for prefix",
469469
),
470-
({"__typename": "SnsInvalid"}, admin.Quilt3AdminError, "Invalid SNS notification ARN: None"),
470+
({"__typename": "SnsInvalid"}, admin.Quilt3AdminError, "Invalid SNS notification ARN"),
471471
({"__typename": "NotificationConfigurationError"}, admin.Quilt3AdminError, "Notification configuration error"),
472-
({"__typename": "NotificationTopicNotFound"}, admin.Quilt3AdminError, "Notification topic not found: None"),
472+
({"__typename": "NotificationTopicNotFound"}, admin.Quilt3AdminError, "Notification topic not found"),
473473
({"__typename": "BucketFileExtensionsToIndexInvalid"}, admin.Quilt3AdminError, "Invalid file extensions to index"),
474474
({"__typename": "BucketIndexContentBytesInvalid"}, admin.Quilt3AdminError, "Invalid index content bytes"),
475475
)

docs/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Entries inside each section should be ordered by type:
2020

2121
### Python API
2222

23-
* [Fixed] `quilt3.admin.buckets.add/update/remove` now include the bucket name (and SNS ARN where applicable) in error messages, making failures easier to debug ([#4776](https://github.com/quiltdata/quilt/pull/4776))
23+
* [Fixed] `quilt3.admin.buckets.add/update/remove` now include the bucket name (and SNS ARN where applicable) in error messages, making failures easier to debug ([#4777](https://github.com/quiltdata/quilt/pull/4777))
2424

2525
## 7.2.0 - 2026-01-28
2626

0 commit comments

Comments
 (0)