From adb7ac08436f935341acb03e15334a6973f6a9bc Mon Sep 17 00:00:00 2001 From: Rakshith Bhyravabhotla Date: Fri, 15 Jan 2021 14:55:39 -0800 Subject: [PATCH] Raise on bad credential --- sdk/eventgrid/azure-eventgrid/CHANGELOG.md | 1 + sdk/eventgrid/azure-eventgrid/azure/eventgrid/_helpers.py | 6 +++--- .../azure-eventgrid/tests/test_eg_publisher_client.py | 5 +++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/sdk/eventgrid/azure-eventgrid/CHANGELOG.md b/sdk/eventgrid/azure-eventgrid/CHANGELOG.md index ee3719b7b2cb..a375195533e4 100644 --- a/sdk/eventgrid/azure-eventgrid/CHANGELOG.md +++ b/sdk/eventgrid/azure-eventgrid/CHANGELOG.md @@ -7,6 +7,7 @@ **Bug Fixes** - `EventGridEvent` has two additional required positional parameters namely, `data` and `data_version`. + - `EventGridPublisherClient` now appropriately throws a `ValueError` if an invalid credential is passed during initialization. ## 2.0.0b4 (2020-11-11) diff --git a/sdk/eventgrid/azure-eventgrid/azure/eventgrid/_helpers.py b/sdk/eventgrid/azure-eventgrid/azure/eventgrid/_helpers.py index 8833791dca2e..b25170c27c6b 100644 --- a/sdk/eventgrid/azure-eventgrid/azure/eventgrid/_helpers.py +++ b/sdk/eventgrid/azure-eventgrid/azure/eventgrid/_helpers.py @@ -77,13 +77,13 @@ def _get_authentication_policy(credential): if credential is None: raise ValueError("Parameter 'self._credential' must not be None.") if isinstance(credential, AzureKeyCredential): - authentication_policy = AzureKeyCredentialPolicy(credential=credential, name=constants.EVENTGRID_KEY_HEADER) + return AzureKeyCredentialPolicy(credential=credential, name=constants.EVENTGRID_KEY_HEADER) if isinstance(credential, AzureSasCredential): - authentication_policy = EventGridSasCredentialPolicy( + return EventGridSasCredentialPolicy( credential=credential, name=constants.EVENTGRID_TOKEN_HEADER ) - return authentication_policy + raise ValueError("The provided credential should be an instance of AzureSasCredential or AzureKeyCredential") def _is_cloud_event(event): # type: (Any) -> bool diff --git a/sdk/eventgrid/azure-eventgrid/tests/test_eg_publisher_client.py b/sdk/eventgrid/azure-eventgrid/tests/test_eg_publisher_client.py index ec8012e9719f..a34b54ad8c77 100644 --- a/sdk/eventgrid/azure-eventgrid/tests/test_eg_publisher_client.py +++ b/sdk/eventgrid/azure-eventgrid/tests/test_eg_publisher_client.py @@ -238,3 +238,8 @@ def test_send_custom_schema_event_as_list(self, resource_group, eventgrid_topic, } ) client.send([custom_event1, custom_event2]) + + def test_send_throws_with_bad_credential(self): + bad_credential = "I am a bad credential" + with pytest.raises(ValueError, match="The provided credential should be an instance of AzureSasCredential or AzureKeyCredential"): + client = EventGridPublisherClient("eventgrid_endpoint", bad_credential)