def test_get_token(): url = "https://iam.cloud.ibm.com/identity/token" access_token_layout = { "username": "******", "role": "Admin", "permissions": ["administrator", "manage_catalog"], "sub": "admin", "iss": "sss", "aud": "sss", "uid": "sss", "iat": 1559324664, "exp": 1559324664 } access_token = jwt.encode( access_token_layout, 'secret', algorithm='HS256', headers={ 'kid': '230498151c214b788dd97f22b85410a5' }) response = { "access_token": access_token, "token_type": "Bearer", "expires_in": 3600, "expiration": 1524167011, "refresh_token": "jy4gl91BQ" } responses.add( responses.POST, url=url, body=json.dumps(response), status=200) auth_headers = {'Host': 'iam.cloud.ibm.com:443'} authenticator = IAMAuthenticator('my_apikey', headers=auth_headers) # Simulate an SDK API request that needs to be authenticated. request = {'headers': {}} # Trigger the "get token" processing to obtain the access token and add to the "SDK request". authenticator.authenticate(request) # Verify that the "authenticate()" method added the Authorization header assert request['headers']['Authorization'] is not None # Verify that the "get token" call contained the Host header. assert responses.calls[0].request.headers.get( 'Host') == 'iam.cloud.ibm.com:443'
def test_get_token(): url = "https://iam.cloud.ibm.com/identity/token" access_token_layout = { "username": "******", "role": "Admin", "permissions": ["administrator", "manage_catalog"], "sub": "admin", "iss": "sss", "aud": "sss", "uid": "sss", "iat": 1559324664, "exp": 1559324664 } access_token = jwt.encode( access_token_layout, 'secret', algorithm='HS256', headers={'kid': '230498151c214b788dd97f22b85410a5'}) access_token = access_token.decode('utf-8') response = { "access_token": access_token, "token_type": "Bearer", "expires_in": 3600, "expiration": 1524167011, "refresh_token": "jy4gl91BQ" } responses.add(responses.POST, url=url, body=json.dumps(response), status=200) authenticator = IAMAuthenticator('my_apikey') request = {'headers': {}} authenticator.authenticate(request) assert request['headers']['Authorization'] is not None