Skip to content

Commit daac763

Browse files
authored
[EventHubs] update credential used for tests for pwsh/cli auth (#34478)
* update credential used for tests * apply cr changes
1 parent aba6049 commit daac763

File tree

1 file changed

+29
-8
lines changed

1 file changed

+29
-8
lines changed

sdk/eventhub/azure-eventhub/tests/conftest.py

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,16 +110,37 @@ def timeout_factor(uamqp_transport):
110110
def fake_span():
111111
return FakeSpan
112112

113+
114+
@pytest.fixture(scope="session")
115+
def get_credential():
116+
use_pwsh = os.environ.get("AZURE_TEST_USE_PWSH_AUTH", "false")
117+
use_cli = os.environ.get("AZURE_TEST_USE_CLI_AUTH", "false")
118+
119+
# User-based authentication through Azure PowerShell, if requested
120+
if use_pwsh.lower() == "true":
121+
log.info(
122+
"Environment variable AZURE_TEST_USE_PWSH_AUTH set to 'true'. Using AzurePowerShellCredential."
123+
)
124+
from azure.identity import AzurePowerShellCredential
125+
return AzurePowerShellCredential()
126+
# User-based authentication through Azure CLI, if requested
127+
elif use_cli.lower() == "true":
128+
log.info("Environment variable AZURE_TEST_USE_CLI_AUTH set to 'true'. Using AzureCliCredential.")
129+
from azure.identity import AzureCliCredential
130+
return AzureCliCredential()
131+
return EnvironmentCredential()
132+
133+
113134
@pytest.fixture(scope="session")
114-
def resource_group():
135+
def resource_group(get_credential):
115136
try:
116137
SUBSCRIPTION_ID = os.environ["AZURE_SUBSCRIPTION_ID"]
117138
except KeyError:
118139
pytest.skip('AZURE_SUBSCRIPTION_ID undefined')
119140
return
120141
base_url = os.environ.get("EVENTHUB_RESOURCE_MANAGER_URL", "https://management.azure.com/")
121142
credential_scopes = ["{}.default".format(base_url)]
122-
resource_client = ResourceManagementClient(EnvironmentCredential(), SUBSCRIPTION_ID, base_url=base_url, credential_scopes=credential_scopes)
143+
resource_client = ResourceManagementClient(get_credential, SUBSCRIPTION_ID, base_url=base_url, credential_scopes=credential_scopes)
123144
resource_group_name = RES_GROUP_PREFIX + str(uuid.uuid4())
124145
parameters = {"location": LOCATION}
125146
expiry = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(days=1)
@@ -138,15 +159,15 @@ def resource_group():
138159

139160

140161
@pytest.fixture(scope="session")
141-
def eventhub_namespace(resource_group):
162+
def eventhub_namespace(resource_group, get_credential):
142163
try:
143164
SUBSCRIPTION_ID = os.environ["AZURE_SUBSCRIPTION_ID"]
144165
except KeyError:
145166
pytest.skip('AZURE_SUBSCRIPTION_ID defined')
146167
return
147168
base_url = os.environ.get("EVENTHUB_RESOURCE_MANAGER_URL", "https://management.azure.com/")
148169
credential_scopes = ["{}.default".format(base_url)]
149-
resource_client = EventHubManagementClient(EnvironmentCredential(), SUBSCRIPTION_ID, base_url=base_url, credential_scopes=credential_scopes)
170+
resource_client = EventHubManagementClient(get_credential, SUBSCRIPTION_ID, base_url=base_url, credential_scopes=credential_scopes)
150171
namespace_name = NAMESPACE_PREFIX + str(uuid.uuid4())
151172
try:
152173
namespace = resource_client.namespaces.begin_create_or_update(
@@ -165,15 +186,15 @@ def eventhub_namespace(resource_group):
165186

166187

167188
@pytest.fixture()
168-
def live_eventhub(resource_group, eventhub_namespace): # pylint: disable=redefined-outer-name
189+
def live_eventhub(resource_group, eventhub_namespace, get_credential): # pylint: disable=redefined-outer-name
169190
try:
170191
SUBSCRIPTION_ID = os.environ["AZURE_SUBSCRIPTION_ID"]
171192
except KeyError:
172193
pytest.skip('AZURE_SUBSCRIPTION_ID defined')
173194
return
174195
base_url = os.environ.get("EVENTHUB_RESOURCE_MANAGER_URL", "https://management.azure.com/")
175196
credential_scopes = ["{}.default".format(base_url)]
176-
resource_client = EventHubManagementClient(EnvironmentCredential(), SUBSCRIPTION_ID, base_url=base_url, credential_scopes=credential_scopes)
197+
resource_client = EventHubManagementClient(get_credential, SUBSCRIPTION_ID, base_url=base_url, credential_scopes=credential_scopes)
177198
eventhub_name = EVENTHUB_PREFIX + str(uuid.uuid4())
178199
eventhub_ns_name, connection_string, key_name, primary_key = eventhub_namespace
179200
eventhub_endpoint_suffix = os.environ.get("EVENT_HUB_ENDPOINT_SUFFIX", ".servicebus.windows.net")
@@ -200,15 +221,15 @@ def live_eventhub(resource_group, eventhub_namespace): # pylint: disable=redefi
200221
warnings.warn(UserWarning("eventhub teardown failed"))
201222

202223
@pytest.fixture()
203-
def resource_mgmt_client():
224+
def resource_mgmt_client(get_credential):
204225
try:
205226
SUBSCRIPTION_ID = os.environ["AZURE_SUBSCRIPTION_ID"]
206227
except KeyError:
207228
pytest.skip('AZURE_SUBSCRIPTION_ID defined')
208229
return
209230
base_url = os.environ.get("EVENTHUB_RESOURCE_MANAGER_URL", "https://management.azure.com/")
210231
credential_scopes = ["{}.default".format(base_url)]
211-
resource_client = EventHubManagementClient(EnvironmentCredential(), SUBSCRIPTION_ID, base_url=base_url, credential_scopes=credential_scopes)
232+
resource_client = EventHubManagementClient(get_credential, SUBSCRIPTION_ID, base_url=base_url, credential_scopes=credential_scopes)
212233
yield resource_client
213234

214235
@pytest.fixture()

0 commit comments

Comments
 (0)