|
61 | 61 | from google.auth import credentials as ga_credentials |
62 | 62 | from google.auth.exceptions import MutualTLSChannelError |
63 | 63 | from google.cloud.location import locations_pb2 |
64 | | -from google.oauth2 import service_account |
65 | | - |
66 | 64 | from google.cloud.secretmanager_v1.services.secret_manager_service import ( |
67 | 65 | SecretManagerServiceAsyncClient, |
68 | 66 | SecretManagerServiceClient, |
69 | 67 | pagers, |
70 | 68 | transports, |
71 | 69 | ) |
72 | 70 | from google.cloud.secretmanager_v1.types import resources, service |
| 71 | +from google.oauth2 import service_account |
73 | 72 |
|
74 | 73 | CRED_INFO_JSON = { |
75 | 74 | "credential_source": "/path/to/file", |
@@ -770,6 +769,49 @@ def test_secret_manager_service_client_client_options( |
770 | 769 | ) |
771 | 770 |
|
772 | 771 |
|
| 772 | +def test_secret_manager_service_client_otel_interceptor_injection(): |
| 773 | + # Mock the helper to return a sentinel interceptor |
| 774 | + mock_interceptor = mock.Mock() |
| 775 | + |
| 776 | + with mock.patch( |
| 777 | + "google.cloud.secretmanager_v1.services.secret_manager_service.client._otel_helpers.get_otel_grpc_interceptor" |
| 778 | + ) as mock_get_interceptor: |
| 779 | + mock_get_interceptor.return_value = mock_interceptor |
| 780 | + |
| 781 | + with mock.patch.object( |
| 782 | + transports.SecretManagerServiceGrpcTransport, "__init__" |
| 783 | + ) as patched_transport_init: |
| 784 | + patched_transport_init.return_value = None |
| 785 | + |
| 786 | + client = SecretManagerServiceClient(transport="grpc") |
| 787 | + |
| 788 | + mock_get_interceptor.assert_called_once() |
| 789 | + |
| 790 | + called_kwargs = patched_transport_init.call_args.kwargs |
| 791 | + assert "interceptors" in called_kwargs |
| 792 | + assert called_kwargs["interceptors"] == [mock_interceptor] |
| 793 | + |
| 794 | + |
| 795 | +def test_secret_manager_service_client_otel_interceptor_injection_disabled(): |
| 796 | + # The helper does not return an interceptor |
| 797 | + with mock.patch( |
| 798 | + "google.cloud.secretmanager_v1.services.secret_manager_service.client._otel_helpers.get_otel_grpc_interceptor" |
| 799 | + ) as mock_get_interceptor: |
| 800 | + mock_get_interceptor.return_value = None |
| 801 | + |
| 802 | + with mock.patch.object( |
| 803 | + transports.SecretManagerServiceGrpcTransport, "__init__" |
| 804 | + ) as patched_transport_init: |
| 805 | + patched_transport_init.return_value = None |
| 806 | + |
| 807 | + client = SecretManagerServiceClient(transport="grpc") |
| 808 | + |
| 809 | + mock_get_interceptor.assert_called_once() |
| 810 | + |
| 811 | + called_kwargs = patched_transport_init.call_args.kwargs |
| 812 | + assert "interceptors" not in called_kwargs |
| 813 | + |
| 814 | + |
773 | 815 | @pytest.mark.parametrize( |
774 | 816 | "client_class,transport_class,transport_name,use_client_cert_env", |
775 | 817 | [ |
|
0 commit comments