Skip to content

Commit 5714623

Browse files
authored
Identity new msal (#31267)
* update tests to accommodate msal change * update msal mindep * update
1 parent 17c3695 commit 5714623

4 files changed

Lines changed: 24 additions & 19 deletions

File tree

eng/tox/install_depend_packages.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"requests": "2.19.0",
4242
"six": "1.12.0",
4343
"cryptography": "3.3.2",
44+
"msal": "1.23.0",
4445
}
4546

4647
# this array contains overrides ONLY IF the package being processed the key of each item

sdk/identity/azure-identity/tests/helpers.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,12 @@ def msal_validating_transport(requests, responses, **kwargs):
192192
return validating_transport([Request()] * 2 + requests, [get_discovery_response(**kwargs)] * 2 + responses)
193193

194194

195+
def new_msal_validating_transport(requests, responses, **kwargs):
196+
"""a transport with default responses to MSAL's discovery requests without validation"""
197+
"""msal made some optimizations to make less calls to discovery endpoint"""
198+
return validating_transport([Request()] + requests, [get_discovery_response(**kwargs)] + responses)
199+
200+
195201
def urlsafeb64_decode(s):
196202
if isinstance(s, str):
197203
s = s.encode("ascii")

sdk/identity/azure-identity/tests/test_certificate_credential.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
urlsafeb64_decode,
3030
mock_response,
3131
msal_validating_transport,
32+
new_msal_validating_transport,
3233
Request,
3334
)
3435

@@ -86,7 +87,7 @@ def test_no_scopes():
8687
def test_policies_configurable():
8788
policy = Mock(spec_set=SansIOHTTPPolicy, on_request=Mock())
8889

89-
transport = msal_validating_transport(
90+
transport = new_msal_validating_transport(
9091
requests=[Request()], responses=[mock_response(json_payload=build_aad_response(access_token="**"))]
9192
)
9293

@@ -100,7 +101,7 @@ def test_policies_configurable():
100101

101102

102103
def test_user_agent():
103-
transport = msal_validating_transport(
104+
transport = new_msal_validating_transport(
104105
requests=[Request(required_headers={"User-Agent": USER_AGENT})],
105106
responses=[mock_response(json_payload=build_aad_response(access_token="**"))],
106107
)
@@ -111,7 +112,7 @@ def test_user_agent():
111112

112113

113114
def test_tenant_id():
114-
transport = msal_validating_transport(
115+
transport = new_msal_validating_transport(
115116
requests=[Request(required_headers={"User-Agent": USER_AGENT})],
116117
responses=[mock_response(json_payload=build_aad_response(access_token="**"))],
117118
)
@@ -316,10 +317,10 @@ def test_persistent_cache_multiple_clients(cert_path, cert_password):
316317

317318
access_token_a = "token a"
318319
access_token_b = "not " + access_token_a
319-
transport_a = msal_validating_transport(
320+
transport_a = new_msal_validating_transport(
320321
requests=[Request()], responses=[mock_response(json_payload=build_aad_response(access_token=access_token_a))]
321322
)
322-
transport_b = msal_validating_transport(
323+
transport_b = new_msal_validating_transport(
323324
requests=[Request()], responses=[mock_response(json_payload=build_aad_response(access_token=access_token_b))]
324325
)
325326

@@ -350,12 +351,12 @@ def test_persistent_cache_multiple_clients(cert_path, cert_password):
350351
scope = "scope"
351352
token_a = credential_a.get_token(scope)
352353
assert token_a.token == access_token_a
353-
assert transport_a.send.call_count == 3 # two MSAL discovery requests, one token request
354+
assert transport_a.send.call_count == 2 # two MSAL discovery requests, one token request
354355

355356
# B should get a different token for the same scope
356357
token_b = credential_b.get_token(scope)
357358
assert token_b.token == access_token_b
358-
assert transport_b.send.call_count == 3
359+
assert transport_b.send.call_count == 2
359360

360361
assert len(cache.find(TokenCache.CredentialType.ACCESS_TOKEN)) == 2
361362

sdk/identity/azure-identity/tests/test_client_secret_credential.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,10 @@
1919
id_token_claims,
2020
mock_response,
2121
msal_validating_transport,
22+
new_msal_validating_transport,
2223
Request,
2324
)
24-
25-
try:
26-
from unittest.mock import Mock, patch
27-
except ImportError: # python < 3.3
28-
from mock import Mock, patch # type: ignore
25+
from unittest.mock import Mock, patch
2926

3027

3128
def test_tenant_id_validation():
@@ -52,7 +49,7 @@ def test_no_scopes():
5249
def test_policies_configurable():
5350
policy = Mock(spec_set=SansIOHTTPPolicy, on_request=Mock())
5451

55-
transport = msal_validating_transport(
52+
transport = new_msal_validating_transport(
5653
requests=[Request()], responses=[mock_response(json_payload=build_aad_response(access_token="**"))]
5754
)
5855

@@ -66,7 +63,7 @@ def test_policies_configurable():
6663

6764

6865
def test_user_agent():
69-
transport = msal_validating_transport(
66+
transport = new_msal_validating_transport(
7067
requests=[Request(required_headers={"User-Agent": USER_AGENT})],
7168
responses=[mock_response(json_payload=build_aad_response(access_token="**"))],
7269
)
@@ -82,7 +79,7 @@ def test_client_secret_credential():
8279
tenant_id = "fake-tenant-id"
8380
access_token = "***"
8481

85-
transport = msal_validating_transport(
82+
transport = new_msal_validating_transport(
8683
endpoint="https://localhost/" + tenant_id,
8784
requests=[Request(url_substring=tenant_id, required_data={"client_id": client_id, "client_secret": secret})],
8885
responses=[mock_response(json_payload=build_aad_response(access_token=access_token))],
@@ -170,10 +167,10 @@ def test_cache_multiple_clients():
170167

171168
access_token_a = "token a"
172169
access_token_b = "not " + access_token_a
173-
transport_a = msal_validating_transport(
170+
transport_a = new_msal_validating_transport(
174171
requests=[Request()], responses=[mock_response(json_payload=build_aad_response(access_token=access_token_a))]
175172
)
176-
transport_b = msal_validating_transport(
173+
transport_b = new_msal_validating_transport(
177174
requests=[Request()], responses=[mock_response(json_payload=build_aad_response(access_token=access_token_b))]
178175
)
179176

@@ -202,12 +199,12 @@ def test_cache_multiple_clients():
202199
scope = "scope"
203200
token_a = credential_a.get_token(scope)
204201
assert token_a.token == access_token_a
205-
assert transport_a.send.call_count == 3 # two MSAL discovery requests, one token request
202+
assert transport_a.send.call_count == 2 # two MSAL discovery requests, one token request
206203

207204
# B should get a different token for the same scope
208205
token_b = credential_b.get_token(scope)
209206
assert token_b.token == access_token_b
210-
assert transport_b.send.call_count == 3
207+
assert transport_b.send.call_count == 2
211208

212209
assert len(cache.find(TokenCache.CredentialType.ACCESS_TOKEN)) == 2
213210

0 commit comments

Comments
 (0)