def test_clear_token(self, mock_keyring): mix = AADMixin() mix.cred_store = "store_name" mix.store_key = "client_id" mix.clear_cached_token() mock_keyring.delete_password.assert_called_with( "store_name", "client_id")
def test_store_token(self, mock_keyring): mix = AADMixin() mix.cred_store = "store_name" mix.store_key = "client_id" mix._default_token_cache({'token_type':'1', 'access_token':'2'}) mock_keyring.set_password.assert_called_with( "store_name", "client_id", str({'token_type':'1', 'access_token':'2'}))
def test_convert_token(self): mix = AADMixin(None, None) token = {'access_token':'abc', 'expires_on':123, 'refresh_token':'asd'} self.assertEqual(mix._convert_token(token), token) caps = {'accessToken':'abc', 'expiresOn':123, 'refreshToken':'asd'} self.assertEqual(mix._convert_token(caps), token) caps = {'ACCessToken':'abc', 'Expires_On':123, 'REFRESH_TOKEN':'asd'} self.assertEqual(mix._convert_token(caps), token)
def test_credentials_signed_session(self, mock_requests): creds = mock.create_autospec(InteractiveCredentials) creds._parse_token = lambda: AADMixin._parse_token(creds) creds.id = 'client_id' creds.token_uri = "token_uri" creds.resource = "resource" creds.token = {'expires_at':'1', 'expires_in':'2', 'refresh_token':"test"} AADMixin.signed_session(creds) mock_requests.OAuth2Session.assert_called_with( 'client_id', token=creds.token, auto_refresh_url='token_uri', auto_refresh_kwargs={'client_id':'client_id', 'resource':'resource'}, token_updater=creds._default_token_cache)
def test_credentials_get_stored_auth(self, mock_keyring): mix = AADMixin() mix.cred_store = "store_name" mix.store_key = "client_id" mix.signed_session = mock.Mock() mock_keyring.get_password.return_value = None with self.assertRaises(ValueError): mix._retrieve_stored_token() mock_keyring.get_password.assert_called_with( "store_name", "client_id") mock_keyring.get_password.return_value = str( {'token_type':'1', 'access_token':'2'}) mix._retrieve_stored_token() mock_keyring.get_password.assert_called_with("store_name", "client_id")
def test_store_token_boom(self, mock_keyring): mock_keyring.side_effect = Exception('Boom!') mix = AADMixin(None, None) mix.cred_store = "store_name" mix.store_key = "client_id" with self.assertLogs('msrestazure.azure_active_directory', level="WARNING"): mix._default_token_cache({'token_type': '1', 'access_token': '2'})
def test_store_token_boom(self, mock_keyring): def boom(*args, **kwargs): raise Exception("Boom!") mock_keyring.set_password = boom mix = AADMixin(None, None) mix.cred_store = "store_name" mix.store_key = "client_id" with self.assertLogs('msrestazure.azure_active_directory', level="WARNING"): mix._default_token_cache({'token_type':'1', 'access_token':'2'})
def test_check_state(self): mix = AADMixin() mix.state = "abc" with self.assertRaises(ValueError): mix._check_state("server?test") with self.assertRaises(ValueError): mix._check_state("server?test&abc") with self.assertRaises(ValueError): mix._check_state("server?test&state=xyx") with self.assertRaises(ValueError): mix._check_state("server?test&state=xyx&") with self.assertRaises(ValueError): mix._check_state("server?test&state=abcd&") mix._check_state("server?test&state=abc&")