Skip to content

Commit

Permalink
[EG] Update tests (Azure#35752)
Browse files Browse the repository at this point in the history
* test

* typo

* update recordings

* mark live

* kwarg fix

* updates

* revert

* kwargs

* continue skip
  • Loading branch information
l0lawrence committed May 30, 2024
1 parent 6186af3 commit b73bd9e
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 93 deletions.
2 changes: 1 addition & 1 deletion sdk/eventgrid/azure-eventgrid/assets.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "python",
"TagPrefix": "python/eventgrid/azure-eventgrid",
"Tag": "python/eventgrid/azure-eventgrid_f155c8ac2d"
"Tag": "python/eventgrid/azure-eventgrid_3ae14bceff"
}
2 changes: 1 addition & 1 deletion sdk/eventgrid/azure-eventgrid/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def add_sanitizers(test_proxy):
add_remove_header_sanitizer(headers="aeg-sas-key, aeg-sas-token, aeg-channel-name")
add_general_regex_sanitizer(
value="fakeresource",
regex="(?<=\\/\\/)[.*]+(?=\\.eastus-1\\.eventgrid\\.azure\\.net/api/events)",
regex="(?<=\\/\\/)[a-z-]+(?=\\.eastus-1\\.eventgrid\\.azure\\.net/api/events)"
)

add_oauth_response_sanitizer()
Expand Down
9 changes: 4 additions & 5 deletions sdk/eventgrid/azure-eventgrid/tests/eventgrid_preparer.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import functools
from devtools_testutils import PowerShellPreparer, EnvironmentVariableLoader
from devtools_testutils import EnvironmentVariableLoader

from azure.mgmt.eventgrid.models import (
Topic,
Expand All @@ -9,8 +9,8 @@
JsonFieldWithDefault,
)

EVENTGRID_TOPIC_PARAM = "eventgrid_topic"
EVENTGRID_TOPIC_LOCATION = "eastus"
EVENTGRID_TOPIC_PARAM = 'eventgrid_topic'
EVENTGRID_TOPIC_LOCATION = 'westus'
CLOUD_EVENT_SCHEMA = InputSchema.cloud_event_schema_v1_0
CUSTOM_EVENT_SCHEMA = InputSchema.custom_event_schema
ID_JSON_FIELD = JsonField(source_field="customId")
Expand All @@ -29,8 +29,7 @@
)

EventGridPreparer = functools.partial(
PowerShellPreparer,
"eventgrid",
EnvironmentVariableLoader, "eventgrid",
eventgrid_topic_endpoint="https://fakeresource.eastus-1.eventgrid.azure.net/api/events",
eventgrid_topic_key="fakekeyfakekeyfakekeyfakekeyfakekeyfakekeyA=",
eventgrid_domain_endpoint="https://fakeresource.eastus-1.eventgrid.azure.net/api/events",
Expand Down
1 change: 0 additions & 1 deletion sdk/eventgrid/azure-eventgrid/tests/test_cncf_events.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import json
from devtools_testutils import AzureRecordedTestCase, recorded_by_proxy

from azure.core.credentials import AzureKeyCredential, AzureSasCredential
from azure.eventgrid import EventGridPublisherClient
from cloudevents.http import CloudEvent

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import json
import pytest
from devtools_testutils import AzureRecordedTestCase, CachedResourceGroupPreparer
from devtools_testutils import AzureRecordedTestCase
from devtools_testutils.aio import recorded_by_proxy_async

from azure.core.credentials import AzureKeyCredential, AzureSasCredential
from azure.eventgrid.aio import EventGridPublisherClient
from cloudevents.http import CloudEvent

Expand Down
24 changes: 10 additions & 14 deletions sdk/eventgrid/azure-eventgrid/tests/test_eg_publisher_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

from devtools_testutils import AzureRecordedTestCase, recorded_by_proxy

from azure.core.credentials import AzureKeyCredential, AzureSasCredential
from azure.core.credentials import AzureSasCredential
from azure.core.messaging import CloudEvent
from azure.core.serialization import NULL
from azure.eventgrid import EventGridPublisherClient, EventGridEvent, generate_sas
Expand Down Expand Up @@ -54,10 +54,10 @@ def test_send_event_grid_event_data_dict(self, eventgrid_topic_endpoint):

@EventGridPreparer()
@recorded_by_proxy
def test_send_event_grid_event_fails_without_full_url(self, eventgrid_topic_key, eventgrid_topic_endpoint):
akc_credential = AzureKeyCredential(eventgrid_topic_key)
def test_send_event_grid_event_fails_without_full_url(self,eventgrid_topic_endpoint):
credential = self.get_credential(EventGridPublisherClient)
parsed_url = urlparse(eventgrid_topic_endpoint)
client = EventGridPublisherClient(parsed_url.netloc, akc_credential)
client = EventGridPublisherClient(parsed_url.netloc, credential)
eg_event = EventGridEvent(
subject="sample",
data={"sample": "eventgridevent"},
Expand Down Expand Up @@ -273,9 +273,11 @@ def test_send_cloud_event_dict(self, eventgrid_cloud_event_topic_endpoint):
}
client.send(cloud_event1)

@pytest.mark.live_test_only
@EventGridPreparer()
@recorded_by_proxy
def test_send_signature_credential(self, eventgrid_topic_key, eventgrid_topic_endpoint):
def test_send_signature_credential(self, **kwargs):
eventgrid_topic_endpoint = kwargs.pop("eventgrid_topic_endpoint")
eventgrid_topic_key = kwargs.pop("eventgrid_topic_key")
expiration_date_utc = dt.datetime.now(UTC()) + timedelta(hours=1)
signature = generate_sas(eventgrid_topic_endpoint, eventgrid_topic_key, expiration_date_utc)
credential = AzureSasCredential(signature)
Expand Down Expand Up @@ -355,14 +357,8 @@ def test_send_token_credential(self, eventgrid_topic_endpoint):
@pytest.mark.live_test_only
@EventGridPreparer()
@recorded_by_proxy
def test_send_partner_namespace(
self,
eventgrid_partner_namespace_topic_endpoint,
eventgrid_partner_namespace_topic_key,
eventgrid_partner_channel_name,
):
credential = AzureKeyCredential(eventgrid_partner_namespace_topic_key)
client = EventGridPublisherClient(eventgrid_partner_namespace_topic_endpoint, credential)
def test_send_partner_namespace(self, eventgrid_partner_namespace_topic_endpoint, eventgrid_partner_channel_name):
client = self.create_eg_publisher_client(eventgrid_partner_namespace_topic_endpoint)
cloud_event = CloudEvent(
source="http://samplesource.dev",
data="cloudevent",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from devtools_testutils import AzureRecordedTestCase
from devtools_testutils.aio import recorded_by_proxy_async

from azure.core.credentials import AzureKeyCredential, AzureSasCredential
from azure.core.credentials import AzureSasCredential
from azure.core.messaging import CloudEvent
from azure.core.serialization import NULL
from azure.eventgrid import EventGridEvent, generate_sas
Expand Down Expand Up @@ -69,12 +69,10 @@ async def test_send_event_grid_event_data_as_list_async(self, eventgrid_topic_en
@EventGridPreparer()
@recorded_by_proxy_async
@pytest.mark.asyncio
async def test_send_event_grid_event_fails_without_full_url_async(
self, eventgrid_topic_key, eventgrid_topic_endpoint
):
akc_credential = AzureKeyCredential(eventgrid_topic_key)
async def test_send_event_grid_event_fails_without_full_url(self, eventgrid_topic_endpoint):
credential = self.get_credential(EventGridPublisherClient, is_async=True)
parsed_url = urlparse(eventgrid_topic_endpoint)
client = EventGridPublisherClient(parsed_url.netloc, akc_credential)
client = EventGridPublisherClient(parsed_url.netloc, credential)
eg_event = EventGridEvent(
subject="sample",
data={"sample": "eventgridevent"},
Expand Down Expand Up @@ -234,10 +232,12 @@ def callback(request):

await client.send(cloud_event, raw_request_hook=callback)

@pytest.mark.live_test_only
@EventGridPreparer()
@recorded_by_proxy_async
@pytest.mark.asyncio
async def test_send_signature_credential_async(self, eventgrid_topic_key, eventgrid_topic_endpoint):
async def test_send_signature_credential(self, **kwargs):
eventgrid_topic_endpoint = kwargs.pop("eventgrid_topic_endpoint")
eventgrid_topic_key = kwargs.pop("eventgrid_topic_key")
expiration_date_utc = dt.datetime.now(UTC()) + timedelta(hours=1)
signature = generate_sas(eventgrid_topic_endpoint, eventgrid_topic_key, expiration_date_utc)
credential = AzureSasCredential(signature)
Expand Down Expand Up @@ -326,14 +326,9 @@ async def test_send_token_credential_async(self, eventgrid_topic_endpoint):
@pytest.mark.live_test_only
@EventGridPreparer()
@recorded_by_proxy_async
async def test_send_partner_namespace_async(
self,
eventgrid_partner_namespace_topic_endpoint,
eventgrid_partner_namespace_topic_key,
eventgrid_partner_channel_name,
):
credential = AzureKeyCredential(eventgrid_partner_namespace_topic_key)
client = EventGridPublisherClient(eventgrid_partner_namespace_topic_endpoint, credential)
@pytest.mark.asyncio
async def test_send_partner_namespace(self, eventgrid_partner_namespace_topic_endpoint, eventgrid_partner_channel_name):
client = self.create_eg_publisher_client(eventgrid_partner_namespace_topic_endpoint)
cloud_event = CloudEvent(
source="http://samplesource.dev",
data="cloudevent",
Expand Down
41 changes: 14 additions & 27 deletions sdk/eventgrid/azure-eventgrid/tests/test_exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,18 @@
# license information.
# --------------------------------------------------------------------------

import logging
import sys
import os
import json
import pytest
import uuid
from datetime import datetime, timedelta
from azure.core.exceptions import (
HttpResponseError,
ClientAuthenticationError,
ServiceRequestError,
)
from msrest.serialization import UTC
import datetime as dt

try:
from urllib.parse import urlparse
except ImportError:
from urlparse import urlparse

from devtools_testutils import AzureMgmtRecordedTestCase, recorded_by_proxy

from azure.core.credentials import AzureKeyCredential
from azure.eventgrid import EventGridPublisherClient, EventGridEvent
from azure.core.messaging import CloudEvent

from eventgrid_preparer import (
EventGridPreparer,
Expand All @@ -41,9 +28,10 @@ def create_eg_publisher_client(self, endpoint):
client = self.create_client_from_credential(EventGridPublisherClient, credential=credential, endpoint=endpoint)
return client

@pytest.mark.live_test_only
@EventGridPreparer()
@recorded_by_proxy
def test_raise_on_auth_error(self, eventgrid_topic_endpoint):
def test_raise_on_auth_error(self, **kwargs):
eventgrid_topic_endpoint = kwargs.pop("eventgrid_topic_endpoint")
akc_credential = AzureKeyCredential("bad credential")
client = EventGridPublisherClient(eventgrid_topic_endpoint, akc_credential)
eg_event = EventGridEvent(
Expand All @@ -60,18 +48,17 @@ def test_raise_on_auth_error(self, eventgrid_topic_endpoint):

@pytest.mark.skip("Fix during MQ - skip to unblock pipeline")
@pytest.mark.live_test_only
def test_raise_on_bad_resource(self):
credential = AzureKeyCredential(os.environ["EVENTGRID_TOPIC_KEY"])
client = EventGridPublisherClient(
"https://bad-resource.eastus-1.eventgrid.azure.net/api/events",
credential,
)
eg_event = CloudEvent(
subject="sample",
data={"sample": "eventgridevent"},
source="source",
type="Sample.Cloud.Event",
)
@EventGridPreparer()
def test_raise_on_bad_resource(self, **kwargs):
eventgrid_topic_key = kwargs.pop("eventgrid_topic_key")
akc_credential = AzureKeyCredential(eventgrid_topic_key)
client = EventGridPublisherClient("https://bad-resource.westus-1.eventgrid.azure.net/api/events", akc_credential)
eg_event = EventGridEvent(
subject="sample",
data={"sample": "eventgridevent"},
event_type="Sample.EventGrid.Event",
data_version="2.0"
)
with pytest.raises(HttpResponseError):
client.send(eg_event)

Expand Down
36 changes: 10 additions & 26 deletions sdk/eventgrid/azure-eventgrid/tests/test_exceptions_async.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,20 @@
# license information.
# --------------------------------------------------------------------------

import logging
import sys
import os
import json
import pytest
import uuid
from datetime import datetime, timedelta
from azure.core.exceptions import (
HttpResponseError,
ClientAuthenticationError,
ServiceRequestError,
)
from azure.core.exceptions import HttpResponseError, ClientAuthenticationError
from msrest.serialization import UTC
import datetime as dt

try:
from urllib.parse import urlparse
except ImportError:
from urlparse import urlparse

from devtools_testutils import AzureRecordedTestCase
from devtools_testutils.aio import recorded_by_proxy_async

from azure.core.credentials import AzureKeyCredential, AzureSasCredential
from azure.core.messaging import CloudEvent
from azure.core.serialization import NULL
from azure.eventgrid import EventGridEvent, generate_sas
from azure.core.credentials import AzureKeyCredential
from azure.eventgrid import EventGridEvent
from azure.eventgrid.aio import EventGridPublisherClient
from azure.eventgrid._legacy._helpers import _cloud_event_to_generated

from eventgrid_preparer import (
EventGridPreparer,
Expand All @@ -45,10 +30,11 @@ def create_eg_publisher_client(self, endpoint):
client = self.create_client_from_credential(EventGridPublisherClient, credential=credential, endpoint=endpoint)
return client

@pytest.mark.live_test_only
@EventGridPreparer()
@recorded_by_proxy_async
@pytest.mark.asyncio
async def test_raise_on_auth_error(self, eventgrid_topic_endpoint):
async def test_raise_on_auth_error(self, **kwargs):
eventgrid_topic_endpoint = kwargs.pop("eventgrid_topic_endpoint")
akc_credential = AzureKeyCredential("bad credential")
client = EventGridPublisherClient(eventgrid_topic_endpoint, akc_credential)
eg_event = EventGridEvent(
Expand All @@ -67,12 +53,10 @@ async def test_raise_on_auth_error(self, eventgrid_topic_endpoint):
@pytest.mark.live_test_only
@EventGridPreparer()
@pytest.mark.asyncio
async def test_raise_on_bad_resource(self):
credential = AzureKeyCredential(os.environ["EVENTGRID_TOPIC_KEY"])
client = EventGridPublisherClient(
"https://bad-resource.eastus-1.eventgrid.azure.net/api/events",
credential,
)
async def test_raise_on_bad_resource(self, **kwargs):
eventgrid_topic_key = kwargs.pop("eventgrid_topic_key")
akc_credential = AzureKeyCredential(eventgrid_topic_key)
client = EventGridPublisherClient("https://bad-resource.westus-1.eventgrid.azure.net/api/events", akc_credential)
eg_event = EventGridEvent(
subject="sample",
data={"sample": "eventgridevent"},
Expand Down

0 comments on commit b73bd9e

Please sign in to comment.