Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update error msg if not supported #11915

Merged
merged 16 commits into from
Jun 9, 2020
Original file line number Diff line number Diff line change
Expand Up @@ -100,5 +100,7 @@ def get_credentials():
environment_name = _get_user_settings()
credentials = _get_refresh_token(VSCODE_CREDENTIALS_SECTION, environment_name)
return credentials
except NotImplementedError: # pylint:disable=try-except-raise
raise
except Exception: # pylint: disable=broad-except
return None
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,13 @@ def get_token(self, *scopes, **kwargs):
return token

if not self._refresh_token:
self._refresh_token = get_credentials()
if not self._refresh_token:
raise CredentialUnavailableError(message="No Azure user is logged in to Visual Studio Code.")
try:
self._refresh_token = get_credentials()
if not self._refresh_token:
raise CredentialUnavailableError(message="No Azure user is logged in to Visual Studio Code.")
except NotImplementedError: # pylint:disable=try-except-raise
raise CredentialUnavailableError(message="No supported")
xiangyan99 marked this conversation as resolved.
Show resolved Hide resolved


token = self._client.obtain_token_by_refresh_token(scopes, self._refresh_token, **kwargs)
return token
8 changes: 8 additions & 0 deletions sdk/identity/azure-identity/tests/test_vscode_credential.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,14 @@ def test_distro():
with pytest.raises(NotImplementedError):
credential = _get_refresh_token("test", "test")

with mock.patch("platform.uname",
return_value=('Linux', 'deb', '4.19.0-9-cloud-amd64',
'#1 SMP Debian 4.19.118-2 (2020-04-29)', 'x86_64', '')):
if sys.version_info[0] == 3 and sys.version_info[1] == 8:
with pytest.raises(CredentialUnavailableError):
credential = VSCodeCredential(_client=mock_client)
token = credential.get_token("scope")


@pytest.mark.skipif(not sys.platform.startswith("darwin"), reason="This test only runs on MacOS")
def test_mac_keychain_valid_value():
Expand Down