From 0943419d0e24cea7eb5d6907ce27cecbf9b5cb03 Mon Sep 17 00:00:00 2001 From: durgesh-ninave-crest Date: Fri, 18 Jul 2025 15:40:16 +0530 Subject: [PATCH 1/6] feat(secretmanager): Added samples for labels and annotations --- .../snippets/delete_secret_annotation.py | 68 ++++++++++++++++ secretmanager/snippets/edit_secret_labels.py | 75 ++++++++++++++++++ .../delete_regional_secret_annotation.py | 78 +++++++++++++++++++ .../regional_samples/snippets_test.py | 19 +++++ secretmanager/snippets/snippets_test.py | 25 ++++++ 5 files changed, 265 insertions(+) create mode 100644 secretmanager/snippets/delete_secret_annotation.py create mode 100644 secretmanager/snippets/edit_secret_labels.py create mode 100644 secretmanager/snippets/regional_samples/delete_regional_secret_annotation.py diff --git a/secretmanager/snippets/delete_secret_annotation.py b/secretmanager/snippets/delete_secret_annotation.py new file mode 100644 index 00000000000..7df7115fd0d --- /dev/null +++ b/secretmanager/snippets/delete_secret_annotation.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and + +# [START secretmanager_delete_secret_annotation] +import argparse + +# Import the Secret Manager client library. +from google.cloud import secretmanager + + +def delete_secret_annotation( + project_id: str, secret_id: str, annotation_key: str +) -> secretmanager.UpdateSecretRequest: + """ + Delete a annotation on an existing secret. + """ + + # Create the Secret Manager client. + client = secretmanager.SecretManagerServiceClient() + + # Build the resource name of the secret. + name = client.secret_path(project_id, secret_id) + + # Get the secret. + response = client.get_secret(request={"name": name}) + + annotations = response.annotations + + # Delete the annotation + annotations.pop(annotation_key, None) + + # Update the secret. + secret = {"name": name, "annotations": annotations} + update_mask = {"paths": ["annotations"]} + response = client.update_secret( + request={"secret": secret, "update_mask": update_mask} + ) + + # Print the new secret name. + print(f"Updated secret: {response.name}") + + return response + + +# [END secretmanager_delete_secret_annotation] + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter + ) + parser.add_argument("project_id", help="id of the GCP project") + parser.add_argument("secret_id", help="id of the secret to act on") + parser.add_argument("annotation_key", help="key of the annotation to be deleted") + args = parser.parse_args() + + delete_secret_annotation(args.project_id, args.secret_id, args.annotation_key) diff --git a/secretmanager/snippets/edit_secret_labels.py b/secretmanager/snippets/edit_secret_labels.py new file mode 100644 index 00000000000..f6d3f9407ba --- /dev/null +++ b/secretmanager/snippets/edit_secret_labels.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and + +# [START secretmanager_edit_secret_labels] + +import argparse +from typing import Dict + +# Import the Secret Manager client library. +from google.cloud import secretmanager + + +def edit_secret_labels( + project_id: str, secret_id: str, new_labels: Dict[str, str] +) -> secretmanager.UpdateSecretRequest: + """ + Create or update a label on an existing secret. + """ + + # Create the Secret Manager client. + client = secretmanager.SecretManagerServiceClient() + + # Build the resource name of the secret. + name = client.secret_path(project_id, secret_id) + + # Get the secret. + response = client.get_secret(request={"name": name}) + + labels = response.labels + + # Update the labels + for label_key in new_labels: + labels[label_key] = new_labels[label_key] + + # Update the secret. + secret = {"name": name, "labels": labels} + update_mask = {"paths": ["labels"]} + response = client.update_secret( + request={"secret": secret, "update_mask": update_mask} + ) + + # Print the new secret name. + print(f"Updated secret: {response.name}") + + return response + + +# [END secretmanager_edit_secret_labels] + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter + ) + parser.add_argument("project_id", help="id of the GCP project") + parser.add_argument("secret_id", help="id of the secret to act on") + parser.add_argument("label_key", help="key of the label to be added/updated") + parser.add_argument("label_value", help="value of the label to be added/updated") + args = parser.parse_args() + + labels = {args.label_key: args.label_value} + edit_secret_labels( + args.project_id, args.secret_id, labels + ) diff --git a/secretmanager/snippets/regional_samples/delete_regional_secret_annotation.py b/secretmanager/snippets/regional_samples/delete_regional_secret_annotation.py new file mode 100644 index 00000000000..3067be68688 --- /dev/null +++ b/secretmanager/snippets/regional_samples/delete_regional_secret_annotation.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python + +# Copyright 2025 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and + +# [START secretmanager_delete_regional_secret_annotation] +import argparse + +# Import the Secret Manager client library. +from google.cloud import secretmanager_v1 + + +def delete_regional_secret_annotation( + project_id: str, location_id: str, secret_id: str, annotation_key: str +) -> secretmanager_v1.UpdateSecretRequest: + """ + Delete a annotation on an existing secret. + """ + + # Endpoint to call the regional Secret Manager API. + api_endpoint = f"secretmanager.{location_id}.rep.googleapis.com" + + # Create the Secret Manager client. + client = secretmanager_v1.SecretManagerServiceClient( + client_options={"api_endpoint": api_endpoint}, + ) + + # Build the resource name of the parent secret. + name = f"projects/{project_id}/locations/{location_id}/secrets/{secret_id}" + + # Get the secret. + response = client.get_secret(request={"name": name}) + + annotations = response.annotations + + # Delete the annotation + annotations.pop(annotation_key, None) + + # Update the secret. + secret = {"name": name, "annotations": annotations} + update_mask = {"paths": ["annotations"]} + response = client.update_secret( + request={"secret": secret, "update_mask": update_mask} + ) + + # Print the new secret name. + print(f"Updated secret: {response.name}") + + return response + + +# [END secretmanager_delete_regional_secret_annotation] + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter + ) + parser.add_argument("project_id", help="id of the GCP project") + parser.add_argument( + "location_id", help="id of the location where secret is to be created" + ) + parser.add_argument("secret_id", help="id of the secret to act on") + parser.add_argument("annotation_key", help="key of the annotation to be deleted") + args = parser.parse_args() + + delete_regional_secret_annotation( + args.project_id, args.location_id, args.secret_id, args.annotation_key + ) diff --git a/secretmanager/snippets/regional_samples/snippets_test.py b/secretmanager/snippets/regional_samples/snippets_test.py index 8c91dc7b6ad..4f5e9561102 100644 --- a/secretmanager/snippets/regional_samples/snippets_test.py +++ b/secretmanager/snippets/regional_samples/snippets_test.py @@ -32,6 +32,7 @@ from regional_samples import create_regional_secret_with_labels from regional_samples import create_regional_secret_with_tags from regional_samples import delete_regional_secret +from regional_samples import delete_regional_secret_annotation from regional_samples import delete_regional_secret_label from regional_samples import delete_regional_secret_with_etag from regional_samples import destroy_regional_secret_version @@ -469,6 +470,24 @@ def test_create_regional_secret_with_label( assert secret_id in secret.name +def test_delete_regional_secret_annotation( + regional_client: secretmanager_v1.SecretManagerServiceClient, + project_id: str, + location_id: str, + regional_secret: Tuple[str, str], + annotation_key: str, +) -> None: + secret_id, _ = regional_secret + delete_regional_secret_annotation.delete_regional_secret_annotation( + project_id, location_id, secret_id, annotation_key + ) + with pytest.raises(exceptions.NotFound): + name = f"projects/{project_id}/locations/{location_id}/secrets/{secret_id}/versions/latest" + retry_client_access_regional_secret_version( + regional_client, request={"name": name} + ) + + def test_delete_regional_secret_labels( regional_client: secretmanager_v1.SecretManagerServiceClient, project_id: str, diff --git a/secretmanager/snippets/snippets_test.py b/secretmanager/snippets/snippets_test.py index fa3954d8b95..dc736df691c 100644 --- a/secretmanager/snippets/snippets_test.py +++ b/secretmanager/snippets/snippets_test.py @@ -37,6 +37,7 @@ from create_secret_with_user_managed_replication import create_ummr_secret from create_update_secret_label import create_update_secret_label from delete_secret import delete_secret +from delete_secret_annotation import delete_secret_annotation from delete_secret_label import delete_secret_label from delete_secret_with_etag import delete_secret_with_etag from destroy_secret_version import destroy_secret_version @@ -45,6 +46,7 @@ from disable_secret_version_with_etag import disable_secret_version_with_etag from disable_secret_with_delayed_destroy import disable_secret_with_delayed_destroy from edit_secret_annotations import edit_secret_annotations +from edit_secret_labels import edit_secret_labels from enable_secret_version import enable_secret_version from enable_secret_version_with_etag import enable_secret_version_with_etag from get_secret import get_secret @@ -485,6 +487,19 @@ def test_delete_secret( retry_client_access_secret_version(client, request={"name": name}) +def test_delete_secret_annotation( + client: secretmanager.SecretManagerServiceClient, + secret: Tuple[str, str, str], + annotation_key: str, +) -> None: + project_id, secret_id, _ = secret + delete_secret_annotation(project_id, secret_id, annotation_key) + with pytest.raises(exceptions.NotFound): + print(f"{client}") + name = f"projects/{project_id}/secrets/{secret_id}/versions/latest" + retry_client_access_secret_version(client, request={"name": name}) + + def test_delete_secret_labels( client: secretmanager.SecretManagerServiceClient, secret: Tuple[str, str, str], @@ -704,6 +719,16 @@ def test_edit_secret_annotations( assert updated_secret.annotations[annotation_key] == updated_annotation_value +def test_edit_secret_labels( + secret: Tuple[str, str, str], label_key: str +) -> None: + project_id, secret_id, _ = secret + updated_label_value = "updatedlabelvalue" + labels = {label_key: updated_label_value} + updated_secret = edit_secret_labels(project_id, secret_id, labels) + assert updated_secret.labels[label_key] == updated_label_value + + def test_update_secret(secret: Tuple[str, str, str]) -> None: project_id, secret_id, _ = secret updated_secret = update_secret(project_id, secret_id) From 7510de833ac56e247c29186818e2fe78c9fc6cb4 Mon Sep 17 00:00:00 2001 From: durgesh-ninave-crest Date: Fri, 18 Jul 2025 15:41:58 +0530 Subject: [PATCH 2/6] fix(secretmanager): Update arguments labels and annotations --- secretmanager/snippets/create_secret_with_annotations.py | 2 +- secretmanager/snippets/create_secret_with_labels.py | 2 +- secretmanager/snippets/create_update_secret_label.py | 2 +- secretmanager/snippets/edit_secret_annotations.py | 2 +- .../regional_samples/create_regional_secret_with_annotations.py | 2 +- .../regional_samples/create_regional_secret_with_labels.py | 2 +- .../regional_samples/edit_regional_secret_annotations.py | 2 +- .../snippets/regional_samples/edit_regional_secret_label.py | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/secretmanager/snippets/create_secret_with_annotations.py b/secretmanager/snippets/create_secret_with_annotations.py index ce6e8b9a3ba..ff0dce3d637 100644 --- a/secretmanager/snippets/create_secret_with_annotations.py +++ b/secretmanager/snippets/create_secret_with_annotations.py @@ -74,5 +74,5 @@ def create_secret_with_annotations( ) args = parser.parse_args() - annotations = {args.annotation_key, args.annotation_value} + annotations = {args.annotation_key: args.annotation_value} create_secret_with_annotations(args.project_id, args.secret_id, annotations) diff --git a/secretmanager/snippets/create_secret_with_labels.py b/secretmanager/snippets/create_secret_with_labels.py index 32e54eb1461..66342f1e253 100644 --- a/secretmanager/snippets/create_secret_with_labels.py +++ b/secretmanager/snippets/create_secret_with_labels.py @@ -70,5 +70,5 @@ def create_secret_with_labels( parser.add_argument("label_value", help="value of the label you want to add") args = parser.parse_args() - labels = {args.label_key, args.label_value} + labels = {args.label_key: args.label_value} create_secret_with_labels(args.project_id, args.secret_id, labels) diff --git a/secretmanager/snippets/create_update_secret_label.py b/secretmanager/snippets/create_update_secret_label.py index 6a737ffd7ad..7351f22c7c1 100644 --- a/secretmanager/snippets/create_update_secret_label.py +++ b/secretmanager/snippets/create_update_secret_label.py @@ -69,5 +69,5 @@ def create_update_secret_label( parser.add_argument("label_value", help="value of the label to be added/updated") args = parser.parse_args() - labels = {args.label_key, args.label_value} + labels = {args.label_key: args.label_value} create_update_secret_label(args.project_id, args.secret_id, labels) diff --git a/secretmanager/snippets/edit_secret_annotations.py b/secretmanager/snippets/edit_secret_annotations.py index de657d7f3eb..65bd8f21f1b 100644 --- a/secretmanager/snippets/edit_secret_annotations.py +++ b/secretmanager/snippets/edit_secret_annotations.py @@ -73,5 +73,5 @@ def edit_secret_annotations( ) args = parser.parse_args() - annotations = {args.annotation_key, args.annotation_value} + annotations = {args.annotation_key: args.annotation_value} edit_secret_annotations(args.project_id, args.secret_id, annotations) diff --git a/secretmanager/snippets/regional_samples/create_regional_secret_with_annotations.py b/secretmanager/snippets/regional_samples/create_regional_secret_with_annotations.py index 5bd28956218..2aaa4083332 100644 --- a/secretmanager/snippets/regional_samples/create_regional_secret_with_annotations.py +++ b/secretmanager/snippets/regional_samples/create_regional_secret_with_annotations.py @@ -80,7 +80,7 @@ def create_regional_secret_with_annotations( ) args = parser.parse_args() - annotations = {args.annotation_key, args.annotation_value} + annotations = {args.annotation_key: args.annotation_value} create_regional_secret_with_annotations( args.project_id, args.location_id, args.secret_id, annotations ) diff --git a/secretmanager/snippets/regional_samples/create_regional_secret_with_labels.py b/secretmanager/snippets/regional_samples/create_regional_secret_with_labels.py index 0a8b9982f1c..6f77f8a2162 100644 --- a/secretmanager/snippets/regional_samples/create_regional_secret_with_labels.py +++ b/secretmanager/snippets/regional_samples/create_regional_secret_with_labels.py @@ -79,7 +79,7 @@ def create_regional_secret_with_labels( parser.add_argument("label_value", help="value of the label you want to add") args = parser.parse_args() - labels = {args.label_key, args.label_value} + labels = {args.label_key: args.label_value} create_regional_secret_with_labels( args.project_id, args.location_id, args.secret_id, labels ) diff --git a/secretmanager/snippets/regional_samples/edit_regional_secret_annotations.py b/secretmanager/snippets/regional_samples/edit_regional_secret_annotations.py index 4ea722019ae..94813c3d2d0 100644 --- a/secretmanager/snippets/regional_samples/edit_regional_secret_annotations.py +++ b/secretmanager/snippets/regional_samples/edit_regional_secret_annotations.py @@ -81,7 +81,7 @@ def edit_regional_secret_annotations( ) args = parser.parse_args() - annotations = {args.annotation_key, args.annotation_value} + annotations = {args.annotation_key: args.annotation_value} edit_regional_secret_annotations( args.project_id, args.location_id, args.secret_id, annotations ) diff --git a/secretmanager/snippets/regional_samples/edit_regional_secret_label.py b/secretmanager/snippets/regional_samples/edit_regional_secret_label.py index 875f2b25a32..a6def7c93db 100644 --- a/secretmanager/snippets/regional_samples/edit_regional_secret_label.py +++ b/secretmanager/snippets/regional_samples/edit_regional_secret_label.py @@ -77,7 +77,7 @@ def edit_regional_secret_label( parser.add_argument("label_value", help="value of the label to be added/updated") args = parser.parse_args() - labels = {args.label_key, args.label_value} + labels = {args.label_key: args.label_value} edit_regional_secret_label( args.project_id, args.location_id, args.secret_id, labels ) From 61486edc490a5015b28f1aae95a8e393b365d66d Mon Sep 17 00:00:00 2001 From: durgesh-ninave-crest Date: Fri, 18 Jul 2025 16:15:20 +0530 Subject: [PATCH 3/6] fix(secretmanager): address gemini review comments --- secretmanager/snippets/delete_secret_annotation.py | 2 +- secretmanager/snippets/edit_secret_labels.py | 2 +- .../regional_samples/delete_regional_secret_annotation.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/secretmanager/snippets/delete_secret_annotation.py b/secretmanager/snippets/delete_secret_annotation.py index 7df7115fd0d..427e6d27bdc 100644 --- a/secretmanager/snippets/delete_secret_annotation.py +++ b/secretmanager/snippets/delete_secret_annotation.py @@ -22,7 +22,7 @@ def delete_secret_annotation( project_id: str, secret_id: str, annotation_key: str -) -> secretmanager.UpdateSecretRequest: +) -> secretmanager.Secret: """ Delete a annotation on an existing secret. """ diff --git a/secretmanager/snippets/edit_secret_labels.py b/secretmanager/snippets/edit_secret_labels.py index f6d3f9407ba..ce331b7d9b7 100644 --- a/secretmanager/snippets/edit_secret_labels.py +++ b/secretmanager/snippets/edit_secret_labels.py @@ -24,7 +24,7 @@ def edit_secret_labels( project_id: str, secret_id: str, new_labels: Dict[str, str] -) -> secretmanager.UpdateSecretRequest: +) -> secretmanager.Secret: """ Create or update a label on an existing secret. """ diff --git a/secretmanager/snippets/regional_samples/delete_regional_secret_annotation.py b/secretmanager/snippets/regional_samples/delete_regional_secret_annotation.py index 3067be68688..ee404b0a9f1 100644 --- a/secretmanager/snippets/regional_samples/delete_regional_secret_annotation.py +++ b/secretmanager/snippets/regional_samples/delete_regional_secret_annotation.py @@ -22,7 +22,7 @@ def delete_regional_secret_annotation( project_id: str, location_id: str, secret_id: str, annotation_key: str -) -> secretmanager_v1.UpdateSecretRequest: +) -> secretmanager_v1.Secret: """ Delete a annotation on an existing secret. """ From a12927090f6bdb5dd729e4bd2271698798f6919c Mon Sep 17 00:00:00 2001 From: durgesh-ninave-crest Date: Fri, 18 Jul 2025 16:44:53 +0530 Subject: [PATCH 4/6] fix(secretmanager): update samples and testcases --- secretmanager/snippets/edit_secret_labels.py | 75 -------------------- secretmanager/snippets/snippets_test.py | 11 --- 2 files changed, 86 deletions(-) delete mode 100644 secretmanager/snippets/edit_secret_labels.py diff --git a/secretmanager/snippets/edit_secret_labels.py b/secretmanager/snippets/edit_secret_labels.py deleted file mode 100644 index ce331b7d9b7..00000000000 --- a/secretmanager/snippets/edit_secret_labels.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env python - -# Copyright 2025 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and - -# [START secretmanager_edit_secret_labels] - -import argparse -from typing import Dict - -# Import the Secret Manager client library. -from google.cloud import secretmanager - - -def edit_secret_labels( - project_id: str, secret_id: str, new_labels: Dict[str, str] -) -> secretmanager.Secret: - """ - Create or update a label on an existing secret. - """ - - # Create the Secret Manager client. - client = secretmanager.SecretManagerServiceClient() - - # Build the resource name of the secret. - name = client.secret_path(project_id, secret_id) - - # Get the secret. - response = client.get_secret(request={"name": name}) - - labels = response.labels - - # Update the labels - for label_key in new_labels: - labels[label_key] = new_labels[label_key] - - # Update the secret. - secret = {"name": name, "labels": labels} - update_mask = {"paths": ["labels"]} - response = client.update_secret( - request={"secret": secret, "update_mask": update_mask} - ) - - # Print the new secret name. - print(f"Updated secret: {response.name}") - - return response - - -# [END secretmanager_edit_secret_labels] - -if __name__ == "__main__": - parser = argparse.ArgumentParser( - description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter - ) - parser.add_argument("project_id", help="id of the GCP project") - parser.add_argument("secret_id", help="id of the secret to act on") - parser.add_argument("label_key", help="key of the label to be added/updated") - parser.add_argument("label_value", help="value of the label to be added/updated") - args = parser.parse_args() - - labels = {args.label_key: args.label_value} - edit_secret_labels( - args.project_id, args.secret_id, labels - ) diff --git a/secretmanager/snippets/snippets_test.py b/secretmanager/snippets/snippets_test.py index dc736df691c..78ef7ceedb5 100644 --- a/secretmanager/snippets/snippets_test.py +++ b/secretmanager/snippets/snippets_test.py @@ -46,7 +46,6 @@ from disable_secret_version_with_etag import disable_secret_version_with_etag from disable_secret_with_delayed_destroy import disable_secret_with_delayed_destroy from edit_secret_annotations import edit_secret_annotations -from edit_secret_labels import edit_secret_labels from enable_secret_version import enable_secret_version from enable_secret_version_with_etag import enable_secret_version_with_etag from get_secret import get_secret @@ -719,16 +718,6 @@ def test_edit_secret_annotations( assert updated_secret.annotations[annotation_key] == updated_annotation_value -def test_edit_secret_labels( - secret: Tuple[str, str, str], label_key: str -) -> None: - project_id, secret_id, _ = secret - updated_label_value = "updatedlabelvalue" - labels = {label_key: updated_label_value} - updated_secret = edit_secret_labels(project_id, secret_id, labels) - assert updated_secret.labels[label_key] == updated_label_value - - def test_update_secret(secret: Tuple[str, str, str]) -> None: project_id, secret_id, _ = secret updated_secret = update_secret(project_id, secret_id) From 32511522df0a0f6bce992d6846d3e4ae127738b6 Mon Sep 17 00:00:00 2001 From: durgesh-ninave-crest Date: Tue, 22 Jul 2025 11:11:15 +0530 Subject: [PATCH 5/6] chore(secretmanager): added assertions in test cases --- secretmanager/snippets/regional_samples/snippets_test.py | 3 ++- secretmanager/snippets/snippets_test.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/secretmanager/snippets/regional_samples/snippets_test.py b/secretmanager/snippets/regional_samples/snippets_test.py index 4f5e9561102..d4b06f5d76d 100644 --- a/secretmanager/snippets/regional_samples/snippets_test.py +++ b/secretmanager/snippets/regional_samples/snippets_test.py @@ -478,9 +478,10 @@ def test_delete_regional_secret_annotation( annotation_key: str, ) -> None: secret_id, _ = regional_secret - delete_regional_secret_annotation.delete_regional_secret_annotation( + secret = delete_regional_secret_annotation.delete_regional_secret_annotation( project_id, location_id, secret_id, annotation_key ) + assert secret_id in secret.name with pytest.raises(exceptions.NotFound): name = f"projects/{project_id}/locations/{location_id}/secrets/{secret_id}/versions/latest" retry_client_access_regional_secret_version( diff --git a/secretmanager/snippets/snippets_test.py b/secretmanager/snippets/snippets_test.py index 78ef7ceedb5..f2094ff96d4 100644 --- a/secretmanager/snippets/snippets_test.py +++ b/secretmanager/snippets/snippets_test.py @@ -492,7 +492,8 @@ def test_delete_secret_annotation( annotation_key: str, ) -> None: project_id, secret_id, _ = secret - delete_secret_annotation(project_id, secret_id, annotation_key) + secret = delete_secret_annotation(project_id, secret_id, annotation_key) + assert secret_id in secret.name with pytest.raises(exceptions.NotFound): print(f"{client}") name = f"projects/{project_id}/secrets/{secret_id}/versions/latest" From 0703bef56a3c577f5d7b0de905118b507b2fe5c0 Mon Sep 17 00:00:00 2001 From: durgesh-ninave-crest Date: Fri, 25 Jul 2025 14:01:22 +0530 Subject: [PATCH 6/6] chore(secretmanager): update test assertions --- secretmanager/snippets/regional_samples/snippets_test.py | 7 +------ secretmanager/snippets/snippets_test.py | 6 +----- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/secretmanager/snippets/regional_samples/snippets_test.py b/secretmanager/snippets/regional_samples/snippets_test.py index d4b06f5d76d..436b8d0d11b 100644 --- a/secretmanager/snippets/regional_samples/snippets_test.py +++ b/secretmanager/snippets/regional_samples/snippets_test.py @@ -471,7 +471,6 @@ def test_create_regional_secret_with_label( def test_delete_regional_secret_annotation( - regional_client: secretmanager_v1.SecretManagerServiceClient, project_id: str, location_id: str, regional_secret: Tuple[str, str], @@ -482,11 +481,7 @@ def test_delete_regional_secret_annotation( project_id, location_id, secret_id, annotation_key ) assert secret_id in secret.name - with pytest.raises(exceptions.NotFound): - name = f"projects/{project_id}/locations/{location_id}/secrets/{secret_id}/versions/latest" - retry_client_access_regional_secret_version( - regional_client, request={"name": name} - ) + assert annotation_key not in secret.annotations def test_delete_regional_secret_labels( diff --git a/secretmanager/snippets/snippets_test.py b/secretmanager/snippets/snippets_test.py index f2094ff96d4..dbcdde921a2 100644 --- a/secretmanager/snippets/snippets_test.py +++ b/secretmanager/snippets/snippets_test.py @@ -487,17 +487,13 @@ def test_delete_secret( def test_delete_secret_annotation( - client: secretmanager.SecretManagerServiceClient, secret: Tuple[str, str, str], annotation_key: str, ) -> None: project_id, secret_id, _ = secret secret = delete_secret_annotation(project_id, secret_id, annotation_key) assert secret_id in secret.name - with pytest.raises(exceptions.NotFound): - print(f"{client}") - name = f"projects/{project_id}/secrets/{secret_id}/versions/latest" - retry_client_access_secret_version(client, request={"name": name}) + assert annotation_key not in secret.annotations def test_delete_secret_labels(