def test_get_discovery_doc_invalid_input(self): discovery_doc = get_discovery_doc('random') assert discovery_doc[ 'issuer'] == 'https://oauth.platform.intuit.com/op/v1' assert discovery_doc[ 'userinfo_endpoint'] == 'https://sandbox-accounts.platform.intuit.com/v1/openid_connect/userinfo'
def test_get_discovery_doc_production(self): discovery_doc = get_discovery_doc('production') assert discovery_doc[ 'issuer'] == 'https://oauth.platform.intuit.com/op/v1' assert discovery_doc[ 'userinfo_endpoint'] == 'https://accounts.platform.intuit.com/v1/openid_connect/userinfo'
def __init__(self, client_id, client_secret, redirect_uri, environment, state_token=None, access_token=None, refresh_token=None, id_token=None, realm_id=None): """Constructor for AuthClient :param client_id: Client ID found in developer account Keys tab :param client_secret: Client Secret found in developer account Keys tab :param redirect_uri: Redirect URI, handles callback from provider :param environment: App Environment, accepted values: 'sandbox','production','prod' :param state_token: CSRF token, generated if not provided, defaults to None :param access_token: Access Token for refresh or revoke functionality, defaults to None :param refresh_token: Refresh Token for refresh or revoke functionality, defaults to None :param id_token: ID Token for OpenID flow, defaults to None :param realm_id: QBO Realm/Company ID, defaults to None """ super(AuthClient, self).__init__() self.client_id = client_id self.client_secret = client_secret self.redirect_uri = redirect_uri self.environment = environment self.state_token = state_token # Discovery doc contains endpoints based on environment specified discovery_doc = get_discovery_doc(self.environment, session=self) self.auth_endpoint = discovery_doc['authorization_endpoint'] self.token_endpoint = discovery_doc['token_endpoint'] self.revoke_endpoint = discovery_doc['revocation_endpoint'] self.issuer_uri = discovery_doc['issuer'] self.jwks_uri = discovery_doc['jwks_uri'] self.user_info_url = discovery_doc['userinfo_endpoint'] # response values self.realm_id = realm_id self.access_token = access_token self.expires_in = None self.refresh_token = refresh_token self.x_refresh_token_expires_in = None self.id_token = id_token
def test_get_discovery_doc_bad_response(self, mock_get): mock_resp = self.mock_request(status=400) mock_get.return_value = mock_resp with pytest.raises(AuthClientError): get_discovery_doc('sandbox')
def test_get_discovery_doc_custom_url_input(self): discovery_doc = get_discovery_doc('https://developer.intuit.com/.well-known/openid_sandbox_configuration/') assert discovery_doc['issuer'] =='https://oauth.platform.intuit.com/op/v1' assert discovery_doc['userinfo_endpoint'] == 'https://sandbox-accounts.platform.intuit.com/v1/openid_connect/userinfo'