Skip to content

Commit

Permalink
Missing enter, exit and close (#16321)
Browse files Browse the repository at this point in the history
  • Loading branch information
Rakshith Bhyravabhotla authored Jan 25, 2021
1 parent bb49488 commit 0ae2052
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 0 deletions.
15 changes: 15 additions & 0 deletions sdk/eventgrid/azure-eventgrid/azure/eventgrid/_publisher_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,3 +134,18 @@ def send_events(self, events, **kwargs):
self._client.publish_custom_event_events(self._endpoint, cast(List, serialized_events), **kwargs)
else:
raise ValueError("Event schema is not correct.")

def close(self):
# type: () -> None
"""Close the :class:`~azure.eventgrid.EventGridPublisherClient` session.
"""
return self._client.close()

def __enter__(self):
# type: () -> EventGridPublisherClient
self._client.__enter__() # pylint:disable=no-member
return self

def __exit__(self, *args):
# type: (*Any) -> None
self._client.__exit__(*args) # pylint:disable=no-member
Original file line number Diff line number Diff line change
Expand Up @@ -146,3 +146,15 @@ async def send_events(
)
else:
raise ValueError("Event schema is not correct.")

async def __aenter__(self) -> "EventGridPublisherClient":
await self._client.__aenter__()
return self

async def __aexit__(self, *args: "Any") -> None:
await self._client.__aexit__(*args)

async def close(self) -> None:
"""Close the :class:`~azure.eventgrid.aio.EventGridPublisherClient` session.
"""
await self._client.__aexit__()
Original file line number Diff line number Diff line change
Expand Up @@ -274,3 +274,17 @@ async def test_send_custom_schema_event_as_list(self, resource_group, eventgrid_
}
)
await client.send_events([custom_event1, custom_event2])

@CachedResourceGroupPreparer(name_prefix='eventgridtest')
@CachedEventGridTopicPreparer(name_prefix='cloudeventgridtest')
@pytest.mark.asyncio
async def test_send_and_close_async_session(self, resource_group, eventgrid_topic, eventgrid_topic_primary_key, eventgrid_topic_endpoint):
akc_credential = AzureKeyCredential(eventgrid_topic_primary_key)
client = EventGridPublisherClient(eventgrid_topic_endpoint, akc_credential)
async with client: # this throws if client can't close
cloud_event = CloudEvent(
source = "http://samplesource.dev",
data = "cloudevent",
type="Sample.Cloud.Event"
)
await client.send_events(cloud_event)

0 comments on commit 0ae2052

Please sign in to comment.