Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
[EG] Update tests (#35752)
* test

* typo

* update recordings

* mark live

* kwarg fix

* updates

* revert

* kwargs

* continue skip
  • Loading branch information
l0lawrence committed May 30, 2024
commit b73bd9e8ea91527ae9ffdec77857565ea9705e8e
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