Skip to content

Commit 0ae2052

Browse files
author
Rakshith Bhyravabhotla
authored
Missing enter, exit and close (#16321)
1 parent bb49488 commit 0ae2052

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

sdk/eventgrid/azure-eventgrid/azure/eventgrid/_publisher_client.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,18 @@ def send_events(self, events, **kwargs):
134134
self._client.publish_custom_event_events(self._endpoint, cast(List, serialized_events), **kwargs)
135135
else:
136136
raise ValueError("Event schema is not correct.")
137+
138+
def close(self):
139+
# type: () -> None
140+
"""Close the :class:`~azure.eventgrid.EventGridPublisherClient` session.
141+
"""
142+
return self._client.close()
143+
144+
def __enter__(self):
145+
# type: () -> EventGridPublisherClient
146+
self._client.__enter__() # pylint:disable=no-member
147+
return self
148+
149+
def __exit__(self, *args):
150+
# type: (*Any) -> None
151+
self._client.__exit__(*args) # pylint:disable=no-member

sdk/eventgrid/azure-eventgrid/azure/eventgrid/aio/_publisher_client_async.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,15 @@ async def send_events(
146146
)
147147
else:
148148
raise ValueError("Event schema is not correct.")
149+
150+
async def __aenter__(self) -> "EventGridPublisherClient":
151+
await self._client.__aenter__()
152+
return self
153+
154+
async def __aexit__(self, *args: "Any") -> None:
155+
await self._client.__aexit__(*args)
156+
157+
async def close(self) -> None:
158+
"""Close the :class:`~azure.eventgrid.aio.EventGridPublisherClient` session.
159+
"""
160+
await self._client.__aexit__()

sdk/eventgrid/azure-eventgrid/tests/test_eg_publisher_client_async.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,3 +274,17 @@ async def test_send_custom_schema_event_as_list(self, resource_group, eventgrid_
274274
}
275275
)
276276
await client.send_events([custom_event1, custom_event2])
277+
278+
@CachedResourceGroupPreparer(name_prefix='eventgridtest')
279+
@CachedEventGridTopicPreparer(name_prefix='cloudeventgridtest')
280+
@pytest.mark.asyncio
281+
async def test_send_and_close_async_session(self, resource_group, eventgrid_topic, eventgrid_topic_primary_key, eventgrid_topic_endpoint):
282+
akc_credential = AzureKeyCredential(eventgrid_topic_primary_key)
283+
client = EventGridPublisherClient(eventgrid_topic_endpoint, akc_credential)
284+
async with client: # this throws if client can't close
285+
cloud_event = CloudEvent(
286+
source = "http://samplesource.dev",
287+
data = "cloudevent",
288+
type="Sample.Cloud.Event"
289+
)
290+
await client.send_events(cloud_event)

0 commit comments

Comments
 (0)