def test_using_kwargs_credentials(self, mocked_google_credentials, mocked_crypt, mocked_jwt): try: generate_jwt( {}, google_application_credentials="/some/path/credentials.json") except ValueError: pytest.fail("Unexpected ValueError")
def test_setting_claims(self, mocked_google_credentials, mocked_crypt, mocked_jwt): claims = {} generate_jwt( claims, google_application_credentials="/some/path/credentials.json") assert claims == { "aud": "https://api.fluidly.com", "email": "*****@*****.**", "exp": 1547439694, "iat": 1547436094, "iss": "*****@*****.**", "sub": "*****@*****.**", }
def test_passing_env_credentials( self, mocked_google_credentials, mocked_crypt, mocked_jwt, mocked_env_credentials_path, ): try: assert generate_jwt({}) == b"JWT_TOKEN" except ValueError: pytest.fail("Unexpected ValueError")
def check_permissions(original_payload: Any, request_url: str, **kwargs: Any) -> bool: start = time.time() signed_jwt = generate_jwt(original_payload) try: response = make_jwt_request(signed_jwt, request_url) except Exception: raise UserPermissionsRequestException() logger = base_logger.get_logger() end = time.time() try: response_json = response.json() authorised = response.status_code == 200 and response_json.get( "grantAccess") if not authorised: logger.warning( "Authorisation failed", response_json=response_json, status_code=response.status_code, response_headers=response.headers, url=request_url, original_payload=original_payload, duration=end - start, **kwargs, ) return False logger.info( "Called user permissions", response_json=response_json, status_code=response.status_code, url=request_url, duration=end - start, ) return True except Exception: logger.warning( "Authorisation failed", status_code=response.status_code, response_headers=response.headers, url=request_url, original_payload=original_payload, exc_info=True, duration=end - start, ) raise UserPermissionsPayloadException()
def test_required_credentials(self): with pytest.raises( ValueError, match="Please provide GOOGLE_APPLICATION_CREDENTIALS"): generate_jwt({})
def test_returning_jwt_from_auth0_env(self, mocked_auth0_jwt_token, mocked_crypt, mocked_jwt): assert generate_jwt({}) == b"AUTH0_JWT_TOKEN"
def test_returning_jwt_with_google_credentials(self, mocked_google_credentials, mocked_crypt, mocked_jwt): assert (generate_jwt( {}, google_application_credentials="/some/path/credentials.json") == b"JWT_TOKEN")