diff --git a/Makefile b/Makefile index 64fdc8e9..b1fbb39d 100644 --- a/Makefile +++ b/Makefile @@ -34,6 +34,12 @@ clean-build: @rm -fr dist/ @rm -fr *.egg-info +format fmt: + isort --recursive oauthlib tests + +lint: + isort --recursive --check-only --diff oauthlib tests + test: tox diff --git a/oauthlib/common.py b/oauthlib/common.py index e7131df4..e8ac1ae2 100644 --- a/oauthlib/common.py +++ b/oauthlib/common.py @@ -12,10 +12,11 @@ import re import time import urllib.parse as urlparse +from urllib.parse import ( + quote as _quote, unquote as _unquote, urlencode as _urlencode, +) + from . import get_debug -from urllib.parse import quote as _quote -from urllib.parse import unquote as _unquote -from urllib.parse import urlencode as _urlencode try: from secrets import randbits diff --git a/oauthlib/oauth1/__init__.py b/oauthlib/oauth1/__init__.py index e6d8a804..f011c2c5 100644 --- a/oauthlib/oauth1/__init__.py +++ b/oauthlib/oauth1/__init__.py @@ -6,12 +6,17 @@ This module is a wrapper for the most recent implementation of OAuth 1.0 Client and Server classes. """ -from .rfc5849 import Client -from .rfc5849 import SIGNATURE_HMAC, SIGNATURE_HMAC_SHA1, SIGNATURE_HMAC_SHA256, SIGNATURE_RSA, SIGNATURE_PLAINTEXT -from .rfc5849 import SIGNATURE_TYPE_AUTH_HEADER, SIGNATURE_TYPE_QUERY -from .rfc5849 import SIGNATURE_TYPE_BODY +from .rfc5849 import ( + SIGNATURE_HMAC, SIGNATURE_HMAC_SHA1, SIGNATURE_HMAC_SHA256, + SIGNATURE_PLAINTEXT, SIGNATURE_RSA, SIGNATURE_TYPE_AUTH_HEADER, + SIGNATURE_TYPE_BODY, SIGNATURE_TYPE_QUERY, Client, +) +from .rfc5849.endpoints import ( + AccessTokenEndpoint, AuthorizationEndpoint, RequestTokenEndpoint, + ResourceEndpoint, SignatureOnlyEndpoint, WebApplicationServer, +) +from .rfc5849.errors import ( + InsecureTransportError, InvalidClientError, InvalidRequestError, + InvalidSignatureMethodError, OAuth1Error, +) from .rfc5849.request_validator import RequestValidator -from .rfc5849.endpoints import RequestTokenEndpoint, AuthorizationEndpoint -from .rfc5849.endpoints import AccessTokenEndpoint, ResourceEndpoint -from .rfc5849.endpoints import SignatureOnlyEndpoint, WebApplicationServer -from .rfc5849.errors import InsecureTransportError, InvalidClientError, InvalidRequestError, InvalidSignatureMethodError, OAuth1Error diff --git a/oauthlib/oauth1/rfc5849/__init__.py b/oauthlib/oauth1/rfc5849/__init__.py index b629fc15..c639667f 100644 --- a/oauthlib/oauth1/rfc5849/__init__.py +++ b/oauthlib/oauth1/rfc5849/__init__.py @@ -9,14 +9,18 @@ import base64 import hashlib import logging -log = logging.getLogger(__name__) - import urllib.parse as urlparse -from oauthlib.common import Request, urlencode, generate_nonce -from oauthlib.common import generate_timestamp, to_unicode +from oauthlib.common import ( + Request, generate_nonce, generate_timestamp, to_unicode, urlencode, +) + from . import parameters, signature +log = logging.getLogger(__name__) + + + SIGNATURE_HMAC_SHA1 = "HMAC-SHA1" SIGNATURE_HMAC_SHA256 = "HMAC-SHA256" SIGNATURE_HMAC = SIGNATURE_HMAC_SHA1 diff --git a/oauthlib/oauth1/rfc5849/endpoints/__init__.py b/oauthlib/oauth1/rfc5849/endpoints/__init__.py index 78ade729..9f30389f 100644 --- a/oauthlib/oauth1/rfc5849/endpoints/__init__.py +++ b/oauthlib/oauth1/rfc5849/endpoints/__init__.py @@ -1,7 +1,8 @@ +from .access_token import AccessTokenEndpoint +from .authorization import AuthorizationEndpoint from .base import BaseEndpoint from .request_token import RequestTokenEndpoint -from .authorization import AuthorizationEndpoint -from .access_token import AccessTokenEndpoint from .resource import ResourceEndpoint from .signature_only import SignatureOnlyEndpoint -from .pre_configured import WebApplicationServer + +from .pre_configured import WebApplicationServer # isort:skip diff --git a/oauthlib/oauth1/rfc5849/endpoints/authorization.py b/oauthlib/oauth1/rfc5849/endpoints/authorization.py index 7d0353b5..00d9576b 100644 --- a/oauthlib/oauth1/rfc5849/endpoints/authorization.py +++ b/oauthlib/oauth1/rfc5849/endpoints/authorization.py @@ -6,11 +6,12 @@ This module is an implementation of various logic needed for signing and checking OAuth 1.0 RFC 5849 requests. """ -from oauthlib.common import Request, add_params_to_uri +from urllib.parse import urlencode + +from oauthlib.common import add_params_to_uri from .. import errors from .base import BaseEndpoint -from urllib.parse import urlencode class AuthorizationEndpoint(BaseEndpoint): diff --git a/oauthlib/oauth1/rfc5849/endpoints/base.py b/oauthlib/oauth1/rfc5849/endpoints/base.py index f9a8f57e..81036067 100644 --- a/oauthlib/oauth1/rfc5849/endpoints/base.py +++ b/oauthlib/oauth1/rfc5849/endpoints/base.py @@ -10,9 +10,11 @@ from oauthlib.common import CaseInsensitiveDict, Request, generate_token -from .. import (CONTENT_TYPE_FORM_URLENCODED, SIGNATURE_HMAC_SHA1, SIGNATURE_HMAC_SHA256, SIGNATURE_RSA, - SIGNATURE_TYPE_AUTH_HEADER, SIGNATURE_TYPE_BODY, - SIGNATURE_TYPE_QUERY, errors, signature, utils) +from .. import ( + CONTENT_TYPE_FORM_URLENCODED, SIGNATURE_HMAC_SHA1, SIGNATURE_HMAC_SHA256, + SIGNATURE_RSA, SIGNATURE_TYPE_AUTH_HEADER, SIGNATURE_TYPE_BODY, + SIGNATURE_TYPE_QUERY, errors, signature, utils, +) class BaseEndpoint: diff --git a/oauthlib/oauth1/rfc5849/endpoints/pre_configured.py b/oauthlib/oauth1/rfc5849/endpoints/pre_configured.py index b14a6d89..23e3cfc8 100644 --- a/oauthlib/oauth1/rfc5849/endpoints/pre_configured.py +++ b/oauthlib/oauth1/rfc5849/endpoints/pre_configured.py @@ -1,5 +1,7 @@ -from . import (AccessTokenEndpoint, AuthorizationEndpoint, - RequestTokenEndpoint, ResourceEndpoint) +from . import ( + AccessTokenEndpoint, AuthorizationEndpoint, RequestTokenEndpoint, + ResourceEndpoint, +) class WebApplicationServer(RequestTokenEndpoint, AuthorizationEndpoint, diff --git a/oauthlib/oauth1/rfc5849/parameters.py b/oauthlib/oauth1/rfc5849/parameters.py index 778a46d8..a9fe23cc 100644 --- a/oauthlib/oauth1/rfc5849/parameters.py +++ b/oauthlib/oauth1/rfc5849/parameters.py @@ -7,12 +7,12 @@ .. _`section 3.5`: https://tools.ietf.org/html/rfc5849#section-3.5 """ +from urllib.parse import urlparse, urlunparse + from oauthlib.common import extract_params, urlencode from . import utils -from urllib.parse import urlparse, urlunparse - # TODO: do we need filter_params now that oauth_params are handled by Request? # We can easily pass in just oauth protocol params. diff --git a/oauthlib/oauth1/rfc5849/request_validator.py b/oauthlib/oauth1/rfc5849/request_validator.py index 657bfe35..750902fc 100644 --- a/oauthlib/oauth1/rfc5849/request_validator.py +++ b/oauthlib/oauth1/rfc5849/request_validator.py @@ -6,8 +6,6 @@ This module is an implementation of various logic needed for signing and checking OAuth 1.0 RFC 5849 requests. """ -import sys - from . import SIGNATURE_METHODS, utils diff --git a/oauthlib/oauth1/rfc5849/signature.py b/oauthlib/oauth1/rfc5849/signature.py index fdc359eb..b11720e0 100644 --- a/oauthlib/oauth1/rfc5849/signature.py +++ b/oauthlib/oauth1/rfc5849/signature.py @@ -25,13 +25,12 @@ import hashlib import hmac import logging +import urllib.parse as urlparse from oauthlib.common import extract_params, safe_string_equals, urldecode -import urllib.parse as urlparse from . import utils - log = logging.getLogger(__name__) diff --git a/oauthlib/oauth1/rfc5849/utils.py b/oauthlib/oauth1/rfc5849/utils.py index 28e006a1..4d22a3eb 100644 --- a/oauthlib/oauth1/rfc5849/utils.py +++ b/oauthlib/oauth1/rfc5849/utils.py @@ -6,10 +6,9 @@ This module contains utility methods used by various parts of the OAuth spec. """ -from oauthlib.common import quote, unquote - import urllib.request as urllib2 +from oauthlib.common import quote, unquote UNICODE_ASCII_CHARACTER_SET = ('abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' diff --git a/oauthlib/oauth2/__init__.py b/oauthlib/oauth2/__init__.py index 91868001..047d8e0b 100644 --- a/oauthlib/oauth2/__init__.py +++ b/oauthlib/oauth2/__init__.py @@ -6,29 +6,31 @@ This module is a wrapper for the most recent implementation of OAuth 2.0 Client and Server classes. """ -from .rfc6749.clients import Client -from .rfc6749.clients import WebApplicationClient -from .rfc6749.clients import MobileApplicationClient -from .rfc6749.clients import LegacyApplicationClient -from .rfc6749.clients import BackendApplicationClient -from .rfc6749.clients import ServiceApplicationClient -from .rfc6749.endpoints import AuthorizationEndpoint -from .rfc6749.endpoints import IntrospectEndpoint -from .rfc6749.endpoints import MetadataEndpoint -from .rfc6749.endpoints import TokenEndpoint -from .rfc6749.endpoints import ResourceEndpoint -from .rfc6749.endpoints import RevocationEndpoint -from .rfc6749.endpoints import Server -from .rfc6749.endpoints import WebApplicationServer -from .rfc6749.endpoints import MobileApplicationServer -from .rfc6749.endpoints import LegacyApplicationServer -from .rfc6749.endpoints import BackendApplicationServer -from .rfc6749.errors import AccessDeniedError, OAuth2Error, FatalClientError, InsecureTransportError, InvalidClientError, InvalidClientIdError, InvalidGrantError, InvalidRedirectURIError, InvalidRequestError, InvalidRequestFatalError, InvalidScopeError, MismatchingRedirectURIError, MismatchingStateError, MissingClientIdError, MissingCodeError, MissingRedirectURIError, MissingResponseTypeError, MissingTokenError, MissingTokenTypeError, ServerError, TemporarilyUnavailableError, TokenExpiredError, UnauthorizedClientError, UnsupportedGrantTypeError, UnsupportedResponseTypeError, UnsupportedTokenTypeError -from .rfc6749.grant_types import AuthorizationCodeGrant -from .rfc6749.grant_types import ImplicitGrant -from .rfc6749.grant_types import ResourceOwnerPasswordCredentialsGrant -from .rfc6749.grant_types import ClientCredentialsGrant -from .rfc6749.grant_types import RefreshTokenGrant +from .rfc6749.clients import ( + BackendApplicationClient, Client, LegacyApplicationClient, + MobileApplicationClient, ServiceApplicationClient, WebApplicationClient, +) +from .rfc6749.endpoints import ( + AuthorizationEndpoint, BackendApplicationServer, IntrospectEndpoint, + LegacyApplicationServer, MetadataEndpoint, MobileApplicationServer, + ResourceEndpoint, RevocationEndpoint, Server, TokenEndpoint, + WebApplicationServer, +) +from .rfc6749.errors import ( + AccessDeniedError, FatalClientError, InsecureTransportError, + InvalidClientError, InvalidClientIdError, InvalidGrantError, + InvalidRedirectURIError, InvalidRequestError, InvalidRequestFatalError, + InvalidScopeError, MismatchingRedirectURIError, MismatchingStateError, + MissingClientIdError, MissingCodeError, MissingRedirectURIError, + MissingResponseTypeError, MissingTokenError, MissingTokenTypeError, + OAuth2Error, ServerError, TemporarilyUnavailableError, TokenExpiredError, + UnauthorizedClientError, UnsupportedGrantTypeError, + UnsupportedResponseTypeError, UnsupportedTokenTypeError, +) +from .rfc6749.grant_types import ( + AuthorizationCodeGrant, ClientCredentialsGrant, ImplicitGrant, + RefreshTokenGrant, ResourceOwnerPasswordCredentialsGrant, +) from .rfc6749.request_validator import RequestValidator from .rfc6749.tokens import BearerToken, OAuth2Token from .rfc6749.utils import is_secure_transport diff --git a/oauthlib/oauth2/rfc6749/__init__.py b/oauthlib/oauth2/rfc6749/__init__.py index 1c112341..1823e9ec 100644 --- a/oauthlib/oauth2/rfc6749/__init__.py +++ b/oauthlib/oauth2/rfc6749/__init__.py @@ -9,10 +9,9 @@ import functools import logging -from .endpoints.base import BaseEndpoint -from .endpoints.base import catch_errors_and_unavailability -from .errors import TemporarilyUnavailableError, ServerError -from .errors import FatalClientError, OAuth2Error - +from .endpoints.base import BaseEndpoint, catch_errors_and_unavailability +from .errors import ( + FatalClientError, OAuth2Error, ServerError, TemporarilyUnavailableError, +) log = logging.getLogger(__name__) diff --git a/oauthlib/oauth2/rfc6749/clients/__init__.py b/oauthlib/oauth2/rfc6749/clients/__init__.py index 6fef7388..8fc6c955 100644 --- a/oauthlib/oauth2/rfc6749/clients/__init__.py +++ b/oauthlib/oauth2/rfc6749/clients/__init__.py @@ -6,9 +6,9 @@ This module is an implementation of various logic needed for consuming OAuth 2.0 RFC6749. """ -from .base import Client, AUTH_HEADER, URI_QUERY, BODY -from .web_application import WebApplicationClient -from .mobile_application import MobileApplicationClient -from .legacy_application import LegacyApplicationClient from .backend_application import BackendApplicationClient +from .base import AUTH_HEADER, BODY, URI_QUERY, Client +from .legacy_application import LegacyApplicationClient +from .mobile_application import MobileApplicationClient from .service_application import ServiceApplicationClient +from .web_application import WebApplicationClient diff --git a/oauthlib/oauth2/rfc6749/clients/backend_application.py b/oauthlib/oauth2/rfc6749/clients/backend_application.py index 5ffe6ae5..0e2a8299 100644 --- a/oauthlib/oauth2/rfc6749/clients/backend_application.py +++ b/oauthlib/oauth2/rfc6749/clients/backend_application.py @@ -6,7 +6,7 @@ This module is an implementation of various logic needed for consuming and providing OAuth 2.0 RFC6749. """ -from ..parameters import parse_token_response, prepare_token_request +from ..parameters import prepare_token_request from .base import Client diff --git a/oauthlib/oauth2/rfc6749/clients/base.py b/oauthlib/oauth2/rfc6749/clients/base.py index 40432582..88065ab3 100644 --- a/oauthlib/oauth2/rfc6749/clients/base.py +++ b/oauthlib/oauth2/rfc6749/clients/base.py @@ -11,11 +11,13 @@ from oauthlib.common import generate_token from oauthlib.oauth2.rfc6749 import tokens -from oauthlib.oauth2.rfc6749.errors import (InsecureTransportError, - TokenExpiredError) -from oauthlib.oauth2.rfc6749.parameters import (parse_token_response, - prepare_token_request, - prepare_token_revocation_request) +from oauthlib.oauth2.rfc6749.errors import ( + InsecureTransportError, TokenExpiredError, +) +from oauthlib.oauth2.rfc6749.parameters import ( + parse_token_response, prepare_token_request, + prepare_token_revocation_request, +) from oauthlib.oauth2.rfc6749.utils import is_secure_transport AUTH_HEADER = 'auth_header' diff --git a/oauthlib/oauth2/rfc6749/clients/legacy_application.py b/oauthlib/oauth2/rfc6749/clients/legacy_application.py index fe2ff4ae..7af68f34 100644 --- a/oauthlib/oauth2/rfc6749/clients/legacy_application.py +++ b/oauthlib/oauth2/rfc6749/clients/legacy_application.py @@ -6,7 +6,7 @@ This module is an implementation of various logic needed for consuming and providing OAuth 2.0 RFC6749. """ -from ..parameters import parse_token_response, prepare_token_request +from ..parameters import prepare_token_request from .base import Client diff --git a/oauthlib/oauth2/rfc6749/clients/service_application.py b/oauthlib/oauth2/rfc6749/clients/service_application.py index 34c2a66f..c751c8b0 100644 --- a/oauthlib/oauth2/rfc6749/clients/service_application.py +++ b/oauthlib/oauth2/rfc6749/clients/service_application.py @@ -10,7 +10,7 @@ from oauthlib.common import to_unicode -from ..parameters import parse_token_response, prepare_token_request +from ..parameters import prepare_token_request from .base import Client diff --git a/oauthlib/oauth2/rfc6749/clients/web_application.py b/oauthlib/oauth2/rfc6749/clients/web_application.py index 42b2c962..a1f3db1d 100644 --- a/oauthlib/oauth2/rfc6749/clients/web_application.py +++ b/oauthlib/oauth2/rfc6749/clients/web_application.py @@ -8,9 +8,10 @@ """ import warnings -from ..parameters import (parse_authorization_code_response, - parse_token_response, prepare_grant_uri, - prepare_token_request) +from ..parameters import ( + parse_authorization_code_response, prepare_grant_uri, + prepare_token_request, +) from .base import Client diff --git a/oauthlib/oauth2/rfc6749/endpoints/__init__.py b/oauthlib/oauth2/rfc6749/endpoints/__init__.py index 49e7ee97..851853f6 100644 --- a/oauthlib/oauth2/rfc6749/endpoints/__init__.py +++ b/oauthlib/oauth2/rfc6749/endpoints/__init__.py @@ -9,11 +9,10 @@ from .authorization import AuthorizationEndpoint from .introspect import IntrospectEndpoint from .metadata import MetadataEndpoint -from .token import TokenEndpoint +from .pre_configured import ( + BackendApplicationServer, LegacyApplicationServer, MobileApplicationServer, + Server, WebApplicationServer, +) from .resource import ResourceEndpoint from .revocation import RevocationEndpoint -from .pre_configured import Server -from .pre_configured import WebApplicationServer -from .pre_configured import MobileApplicationServer -from .pre_configured import LegacyApplicationServer -from .pre_configured import BackendApplicationServer +from .token import TokenEndpoint diff --git a/oauthlib/oauth2/rfc6749/endpoints/base.py b/oauthlib/oauth2/rfc6749/endpoints/base.py index 51695175..e59d4017 100644 --- a/oauthlib/oauth2/rfc6749/endpoints/base.py +++ b/oauthlib/oauth2/rfc6749/endpoints/base.py @@ -9,11 +9,10 @@ import functools import logging -from ..errors import (FatalClientError, OAuth2Error, ServerError, - TemporarilyUnavailableError, InvalidRequestError, - InvalidClientError, UnsupportedTokenTypeError) - -from oauthlib.common import CaseInsensitiveDict, urldecode +from ..errors import ( + FatalClientError, InvalidClientError, InvalidRequestError, OAuth2Error, + ServerError, TemporarilyUnavailableError, UnsupportedTokenTypeError, +) log = logging.getLogger(__name__) diff --git a/oauthlib/oauth2/rfc6749/endpoints/introspect.py b/oauthlib/oauth2/rfc6749/endpoints/introspect.py index bad89508..1199031f 100644 --- a/oauthlib/oauth2/rfc6749/endpoints/introspect.py +++ b/oauthlib/oauth2/rfc6749/endpoints/introspect.py @@ -12,7 +12,7 @@ from oauthlib.common import Request -from ..errors import OAuth2Error, UnsupportedTokenTypeError +from ..errors import OAuth2Error from .base import BaseEndpoint, catch_errors_and_unavailability log = logging.getLogger(__name__) diff --git a/oauthlib/oauth2/rfc6749/endpoints/metadata.py b/oauthlib/oauth2/rfc6749/endpoints/metadata.py index 6bc078d9..815f4b08 100644 --- a/oauthlib/oauth2/rfc6749/endpoints/metadata.py +++ b/oauthlib/oauth2/rfc6749/endpoints/metadata.py @@ -11,13 +11,12 @@ import json import logging -from .base import BaseEndpoint, catch_errors_and_unavailability +from .. import grant_types from .authorization import AuthorizationEndpoint +from .base import BaseEndpoint, catch_errors_and_unavailability from .introspect import IntrospectEndpoint -from .token import TokenEndpoint from .revocation import RevocationEndpoint -from .. import grant_types - +from .token import TokenEndpoint log = logging.getLogger(__name__) diff --git a/oauthlib/oauth2/rfc6749/endpoints/pre_configured.py b/oauthlib/oauth2/rfc6749/endpoints/pre_configured.py index 7b17dc42..0130f9ef 100644 --- a/oauthlib/oauth2/rfc6749/endpoints/pre_configured.py +++ b/oauthlib/oauth2/rfc6749/endpoints/pre_configured.py @@ -6,11 +6,10 @@ This module is an implementation of various endpoints needed for providing OAuth 2.0 RFC6749 servers. """ -from ..grant_types import (AuthorizationCodeGrant, - ClientCredentialsGrant, - ImplicitGrant, - RefreshTokenGrant, - ResourceOwnerPasswordCredentialsGrant) +from ..grant_types import ( + AuthorizationCodeGrant, ClientCredentialsGrant, ImplicitGrant, + RefreshTokenGrant, ResourceOwnerPasswordCredentialsGrant, +) from ..tokens import BearerToken from .authorization import AuthorizationEndpoint from .introspect import IntrospectEndpoint diff --git a/oauthlib/oauth2/rfc6749/endpoints/revocation.py b/oauthlib/oauth2/rfc6749/endpoints/revocation.py index ed245f3f..0eb25d30 100644 --- a/oauthlib/oauth2/rfc6749/endpoints/revocation.py +++ b/oauthlib/oauth2/rfc6749/endpoints/revocation.py @@ -11,7 +11,7 @@ from oauthlib.common import Request -from ..errors import OAuth2Error, UnsupportedTokenTypeError +from ..errors import OAuth2Error from .base import BaseEndpoint, catch_errors_and_unavailability log = logging.getLogger(__name__) diff --git a/oauthlib/oauth2/rfc6749/grant_types/__init__.py b/oauthlib/oauth2/rfc6749/grant_types/__init__.py index 30c90d7e..195cd094 100644 --- a/oauthlib/oauth2/rfc6749/grant_types/__init__.py +++ b/oauthlib/oauth2/rfc6749/grant_types/__init__.py @@ -4,7 +4,9 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ """ from .authorization_code import AuthorizationCodeGrant -from .implicit import ImplicitGrant -from .resource_owner_password_credentials import ResourceOwnerPasswordCredentialsGrant from .client_credentials import ClientCredentialsGrant +from .implicit import ImplicitGrant from .refresh_token import RefreshTokenGrant +from .resource_owner_password_credentials import ( + ResourceOwnerPasswordCredentialsGrant, +) diff --git a/oauthlib/oauth2/rfc6749/grant_types/base.py b/oauthlib/oauth2/rfc6749/grant_types/base.py index 66e1fd14..51ba81be 100644 --- a/oauthlib/oauth2/rfc6749/grant_types/base.py +++ b/oauthlib/oauth2/rfc6749/grant_types/base.py @@ -7,8 +7,8 @@ from itertools import chain from oauthlib.common import add_params_to_uri -from oauthlib.uri_validate import is_absolute_uri from oauthlib.oauth2.rfc6749 import errors, utils +from oauthlib.uri_validate import is_absolute_uri from ..request_validator import RequestValidator diff --git a/oauthlib/oauth2/rfc6749/grant_types/client_credentials.py b/oauthlib/oauth2/rfc6749/grant_types/client_credentials.py index 05f13aff..d2c0ea47 100644 --- a/oauthlib/oauth2/rfc6749/grant_types/client_credentials.py +++ b/oauthlib/oauth2/rfc6749/grant_types/client_credentials.py @@ -7,7 +7,6 @@ import logging from .. import errors -from ..request_validator import RequestValidator from .base import GrantTypeBase log = logging.getLogger(__name__) diff --git a/oauthlib/oauth2/rfc6749/grant_types/refresh_token.py b/oauthlib/oauth2/rfc6749/grant_types/refresh_token.py index e7405d2c..cc0ad0d6 100644 --- a/oauthlib/oauth2/rfc6749/grant_types/refresh_token.py +++ b/oauthlib/oauth2/rfc6749/grant_types/refresh_token.py @@ -7,7 +7,6 @@ import logging from .. import errors, utils -from ..request_validator import RequestValidator from .base import GrantTypeBase log = logging.getLogger(__name__) diff --git a/oauthlib/oauth2/rfc6749/grant_types/resource_owner_password_credentials.py b/oauthlib/oauth2/rfc6749/grant_types/resource_owner_password_credentials.py index 9c8ee1d7..b65b3e76 100644 --- a/oauthlib/oauth2/rfc6749/grant_types/resource_owner_password_credentials.py +++ b/oauthlib/oauth2/rfc6749/grant_types/resource_owner_password_credentials.py @@ -7,7 +7,6 @@ import logging from .. import errors -from ..request_validator import RequestValidator from .base import GrantTypeBase log = logging.getLogger(__name__) diff --git a/oauthlib/oauth2/rfc6749/parameters.py b/oauthlib/oauth2/rfc6749/parameters.py index 54c8d24d..b5d5f419 100644 --- a/oauthlib/oauth2/rfc6749/parameters.py +++ b/oauthlib/oauth2/rfc6749/parameters.py @@ -10,14 +10,15 @@ import json import os import time +import urllib.parse as urlparse from oauthlib.common import add_params_to_qs, add_params_to_uri from oauthlib.signals import scope_changed -import urllib.parse as urlparse -from .errors import (InsecureTransportError, MismatchingStateError, - MissingCodeError, MissingTokenError, - MissingTokenTypeError, raise_from_error) +from .errors import ( + InsecureTransportError, MismatchingStateError, MissingCodeError, + MissingTokenError, MissingTokenTypeError, raise_from_error, +) from .tokens import OAuth2Token from .utils import is_secure_transport, list_to_scope, scope_to_list diff --git a/oauthlib/oauth2/rfc6749/tokens.py b/oauthlib/oauth2/rfc6749/tokens.py index 6f6b1f6d..6284248d 100644 --- a/oauthlib/oauth2/rfc6749/tokens.py +++ b/oauthlib/oauth2/rfc6749/tokens.py @@ -9,17 +9,16 @@ """ import hashlib import hmac -from binascii import b2a_base64 import warnings +from binascii import b2a_base64 +from urllib.parse import urlparse from oauthlib import common from oauthlib.common import add_params_to_qs, add_params_to_uri -from urllib.parse import urlparse from . import utils - class OAuth2Token(dict): def __init__(self, params, old_scope=None): diff --git a/oauthlib/oauth2/rfc6749/utils.py b/oauthlib/oauth2/rfc6749/utils.py index 3117d4bf..f7f2ab4f 100644 --- a/oauthlib/oauth2/rfc6749/utils.py +++ b/oauthlib/oauth2/rfc6749/utils.py @@ -7,10 +7,9 @@ """ import datetime import os +from urllib.parse import quote, urlparse from oauthlib.common import urldecode -from urllib.parse import quote -from urllib.parse import urlparse def list_to_scope(scope): diff --git a/oauthlib/openid/__init__.py b/oauthlib/openid/__init__.py index fb1ac8da..8a34e591 100644 --- a/oauthlib/openid/__init__.py +++ b/oauthlib/openid/__init__.py @@ -4,6 +4,5 @@ ~~~~~~~~~~~~~~ """ -from .connect.core.endpoints import Server -from .connect.core.endpoints import UserInfoEndpoint +from .connect.core.endpoints import Server, UserInfoEndpoint from .connect.core.request_validator import RequestValidator diff --git a/oauthlib/openid/connect/core/endpoints/pre_configured.py b/oauthlib/openid/connect/core/endpoints/pre_configured.py index ca8199d0..03ac8f6a 100644 --- a/oauthlib/openid/connect/core/endpoints/pre_configured.py +++ b/oauthlib/openid/connect/core/endpoints/pre_configured.py @@ -7,29 +7,20 @@ for providing OpenID Connect servers. """ from oauthlib.oauth2.rfc6749.endpoints import ( - AuthorizationEndpoint, - IntrospectEndpoint, - ResourceEndpoint, - RevocationEndpoint, - TokenEndpoint + AuthorizationEndpoint, IntrospectEndpoint, ResourceEndpoint, + RevocationEndpoint, TokenEndpoint, ) from oauthlib.oauth2.rfc6749.grant_types import ( AuthorizationCodeGrant as OAuth2AuthorizationCodeGrant, - ImplicitGrant as OAuth2ImplicitGrant, - ClientCredentialsGrant, - RefreshTokenGrant, - ResourceOwnerPasswordCredentialsGrant + ClientCredentialsGrant, ImplicitGrant as OAuth2ImplicitGrant, + RefreshTokenGrant, ResourceOwnerPasswordCredentialsGrant, ) from oauthlib.oauth2.rfc6749.tokens import BearerToken -from ..grant_types import ( - AuthorizationCodeGrant, - ImplicitGrant, - HybridGrant, -) + +from ..grant_types import AuthorizationCodeGrant, HybridGrant, ImplicitGrant from ..grant_types.dispatchers import ( - AuthorizationCodeGrantDispatcher, + AuthorizationCodeGrantDispatcher, AuthorizationTokenGrantDispatcher, ImplicitTokenGrantDispatcher, - AuthorizationTokenGrantDispatcher ) from ..tokens import JWTToken from .userinfo import UserInfoEndpoint diff --git a/oauthlib/openid/connect/core/endpoints/userinfo.py b/oauthlib/openid/connect/core/endpoints/userinfo.py index dc733732..1c29cc55 100644 --- a/oauthlib/openid/connect/core/endpoints/userinfo.py +++ b/oauthlib/openid/connect/core/endpoints/userinfo.py @@ -8,11 +8,11 @@ import logging from oauthlib.common import Request -from oauthlib.oauth2.rfc6749.endpoints.base import BaseEndpoint -from oauthlib.oauth2.rfc6749.endpoints.base import catch_errors_and_unavailability -from oauthlib.oauth2.rfc6749.tokens import BearerToken from oauthlib.oauth2.rfc6749 import errors - +from oauthlib.oauth2.rfc6749.endpoints.base import ( + BaseEndpoint, catch_errors_and_unavailability, +) +from oauthlib.oauth2.rfc6749.tokens import BearerToken log = logging.getLogger(__name__) diff --git a/oauthlib/openid/connect/core/grant_types/__init__.py b/oauthlib/openid/connect/core/grant_types/__init__.py index 4e7b4749..b126218a 100644 --- a/oauthlib/openid/connect/core/grant_types/__init__.py +++ b/oauthlib/openid/connect/core/grant_types/__init__.py @@ -4,12 +4,11 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ """ from .authorization_code import AuthorizationCodeGrant -from .implicit import ImplicitGrant from .base import GrantTypeBase -from .hybrid import HybridGrant -from .exceptions import OIDCNoPrompt from .dispatchers import ( - AuthorizationCodeGrantDispatcher, + AuthorizationCodeGrantDispatcher, AuthorizationTokenGrantDispatcher, ImplicitTokenGrantDispatcher, - AuthorizationTokenGrantDispatcher ) +from .exceptions import OIDCNoPrompt +from .hybrid import HybridGrant +from .implicit import ImplicitGrant diff --git a/oauthlib/openid/connect/core/grant_types/authorization_code.py b/oauthlib/openid/connect/core/grant_types/authorization_code.py index d07d138b..d38b028a 100644 --- a/oauthlib/openid/connect/core/grant_types/authorization_code.py +++ b/oauthlib/openid/connect/core/grant_types/authorization_code.py @@ -5,7 +5,9 @@ """ import logging -from oauthlib.oauth2.rfc6749.grant_types.authorization_code import AuthorizationCodeGrant as OAuth2AuthorizationCodeGrant +from oauthlib.oauth2.rfc6749.grant_types.authorization_code import ( + AuthorizationCodeGrant as OAuth2AuthorizationCodeGrant, +) from .base import GrantTypeBase diff --git a/oauthlib/openid/connect/core/grant_types/base.py b/oauthlib/openid/connect/core/grant_types/base.py index cd27237e..d0a48127 100644 --- a/oauthlib/openid/connect/core/grant_types/base.py +++ b/oauthlib/openid/connect/core/grant_types/base.py @@ -1,12 +1,14 @@ -from .exceptions import OIDCNoPrompt - import base64 import hashlib import logging import time from json import loads -from oauthlib.oauth2.rfc6749.errors import ConsentRequired, InvalidRequestError, LoginRequired +from oauthlib.oauth2.rfc6749.errors import ( + ConsentRequired, InvalidRequestError, LoginRequired, +) + +from .exceptions import OIDCNoPrompt log = logging.getLogger(__name__) diff --git a/oauthlib/openid/connect/core/grant_types/dispatchers.py b/oauthlib/openid/connect/core/grant_types/dispatchers.py index 6dcc0cb3..2734c387 100644 --- a/oauthlib/openid/connect/core/grant_types/dispatchers.py +++ b/oauthlib/openid/connect/core/grant_types/dispatchers.py @@ -1,4 +1,5 @@ import logging + log = logging.getLogger(__name__) diff --git a/oauthlib/openid/connect/core/grant_types/hybrid.py b/oauthlib/openid/connect/core/grant_types/hybrid.py index caf85475..a8dd564f 100644 --- a/oauthlib/openid/connect/core/grant_types/hybrid.py +++ b/oauthlib/openid/connect/core/grant_types/hybrid.py @@ -5,11 +5,13 @@ """ import logging -from oauthlib.oauth2.rfc6749.grant_types.authorization_code import AuthorizationCodeGrant as OAuth2AuthorizationCodeGrant from oauthlib.oauth2.rfc6749.errors import InvalidRequestError +from oauthlib.oauth2.rfc6749.grant_types.authorization_code import ( + AuthorizationCodeGrant as OAuth2AuthorizationCodeGrant, +) -from .base import GrantTypeBase from ..request_validator import RequestValidator +from .base import GrantTypeBase log = logging.getLogger(__name__) diff --git a/oauthlib/openid/connect/core/grant_types/implicit.py b/oauthlib/openid/connect/core/grant_types/implicit.py index 62f63f9a..3ab7d5d4 100644 --- a/oauthlib/openid/connect/core/grant_types/implicit.py +++ b/oauthlib/openid/connect/core/grant_types/implicit.py @@ -5,10 +5,12 @@ """ import logging -from .base import GrantTypeBase - -from oauthlib.oauth2.rfc6749.grant_types.implicit import ImplicitGrant as OAuth2ImplicitGrant from oauthlib.oauth2.rfc6749.errors import InvalidRequestError +from oauthlib.oauth2.rfc6749.grant_types.implicit import ( + ImplicitGrant as OAuth2ImplicitGrant, +) + +from .base import GrantTypeBase log = logging.getLogger(__name__) diff --git a/oauthlib/openid/connect/core/request_validator.py b/oauthlib/openid/connect/core/request_validator.py index ebc07dc5..7f44d694 100644 --- a/oauthlib/openid/connect/core/request_validator.py +++ b/oauthlib/openid/connect/core/request_validator.py @@ -5,7 +5,9 @@ """ import logging -from oauthlib.oauth2.rfc6749.request_validator import RequestValidator as OAuth2RequestValidator +from oauthlib.oauth2.rfc6749.request_validator import ( + RequestValidator as OAuth2RequestValidator, +) log = logging.getLogger(__name__) diff --git a/setup.cfg b/setup.cfg index ed8a958e..3128e182 100644 --- a/setup.cfg +++ b/setup.cfg @@ -3,3 +3,13 @@ universal = 1 [metadata] license_file = LICENSE + +[isort] +combine_as_imports = true +default_section = THIRDPARTY +include_trailing_comma = true +known_first_party = oauthlib +known_tests = tests +sections = FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,TESTS,LOCALFOLDER +line_length = 79 +multi_line_output = 5 diff --git a/tests/oauth1/rfc5849/endpoints/test_access_token.py b/tests/oauth1/rfc5849/endpoints/test_access_token.py index 05d62fca..57d81175 100644 --- a/tests/oauth1/rfc5849/endpoints/test_access_token.py +++ b/tests/oauth1/rfc5849/endpoints/test_access_token.py @@ -4,7 +4,7 @@ from oauthlib.oauth1.rfc5849 import Client from oauthlib.oauth1.rfc5849.endpoints import AccessTokenEndpoint -from ....unittest import TestCase +from tests.unittest import TestCase class AccessTokenEndpointTest(TestCase): diff --git a/tests/oauth1/rfc5849/endpoints/test_base.py b/tests/oauth1/rfc5849/endpoints/test_base.py index 6fc991a0..e87f359b 100644 --- a/tests/oauth1/rfc5849/endpoints/test_base.py +++ b/tests/oauth1/rfc5849/endpoints/test_base.py @@ -1,15 +1,16 @@ from re import sub - from unittest.mock import MagicMock from oauthlib.common import CaseInsensitiveDict, safe_string_equals from oauthlib.oauth1 import Client, RequestValidator -from oauthlib.oauth1.rfc5849 import (SIGNATURE_HMAC, SIGNATURE_PLAINTEXT, - SIGNATURE_RSA, errors) -from oauthlib.oauth1.rfc5849.endpoints import (BaseEndpoint, - RequestTokenEndpoint) - -from ....unittest import TestCase +from oauthlib.oauth1.rfc5849 import ( + SIGNATURE_HMAC, SIGNATURE_PLAINTEXT, SIGNATURE_RSA, errors, +) +from oauthlib.oauth1.rfc5849.endpoints import ( + BaseEndpoint, RequestTokenEndpoint, +) + +from tests.unittest import TestCase URLENCODED = {"Content-Type": "application/x-www-form-urlencoded"} diff --git a/tests/oauth1/rfc5849/endpoints/test_request_token.py b/tests/oauth1/rfc5849/endpoints/test_request_token.py index e16ea7b0..879cad2f 100644 --- a/tests/oauth1/rfc5849/endpoints/test_request_token.py +++ b/tests/oauth1/rfc5849/endpoints/test_request_token.py @@ -4,7 +4,7 @@ from oauthlib.oauth1.rfc5849 import Client from oauthlib.oauth1.rfc5849.endpoints import RequestTokenEndpoint -from ....unittest import TestCase +from tests.unittest import TestCase class RequestTokenEndpointTest(TestCase): diff --git a/tests/oauth1/rfc5849/endpoints/test_resource.py b/tests/oauth1/rfc5849/endpoints/test_resource.py index 2aeb1c80..416216f7 100644 --- a/tests/oauth1/rfc5849/endpoints/test_resource.py +++ b/tests/oauth1/rfc5849/endpoints/test_resource.py @@ -4,7 +4,7 @@ from oauthlib.oauth1.rfc5849 import Client from oauthlib.oauth1.rfc5849.endpoints import ResourceEndpoint -from ....unittest import TestCase +from tests.unittest import TestCase class ResourceEndpointTest(TestCase): diff --git a/tests/oauth1/rfc5849/endpoints/test_signature_only.py b/tests/oauth1/rfc5849/endpoints/test_signature_only.py index 2ff10735..16585bd5 100644 --- a/tests/oauth1/rfc5849/endpoints/test_signature_only.py +++ b/tests/oauth1/rfc5849/endpoints/test_signature_only.py @@ -4,7 +4,7 @@ from oauthlib.oauth1.rfc5849 import Client from oauthlib.oauth1.rfc5849.endpoints import SignatureOnlyEndpoint -from ....unittest import TestCase +from tests.unittest import TestCase class SignatureOnlyEndpointTest(TestCase): diff --git a/tests/oauth1/rfc5849/test_client.py b/tests/oauth1/rfc5849/test_client.py index 5c805a1b..f7c997f5 100644 --- a/tests/oauth1/rfc5849/test_client.py +++ b/tests/oauth1/rfc5849/test_client.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- from oauthlib.common import Request -from oauthlib.oauth1 import (SIGNATURE_PLAINTEXT, SIGNATURE_HMAC_SHA1, - SIGNATURE_HMAC_SHA256, SIGNATURE_RSA, - SIGNATURE_TYPE_BODY, SIGNATURE_TYPE_QUERY) +from oauthlib.oauth1 import ( + SIGNATURE_HMAC_SHA1, SIGNATURE_HMAC_SHA256, SIGNATURE_PLAINTEXT, + SIGNATURE_RSA, SIGNATURE_TYPE_BODY, SIGNATURE_TYPE_QUERY, +) from oauthlib.oauth1.rfc5849 import Client -from ...unittest import TestCase +from tests.unittest import TestCase class ClientRealmTests(TestCase): diff --git a/tests/oauth1/rfc5849/test_parameters.py b/tests/oauth1/rfc5849/test_parameters.py index 3afbb3a9..92b95c11 100644 --- a/tests/oauth1/rfc5849/test_parameters.py +++ b/tests/oauth1/rfc5849/test_parameters.py @@ -1,11 +1,11 @@ # -*- coding: utf-8 -*- from oauthlib.common import urlencode -from oauthlib.oauth1.rfc5849.parameters import (_append_params, - prepare_form_encoded_body, - prepare_headers, - prepare_request_uri_query) +from oauthlib.oauth1.rfc5849.parameters import ( + _append_params, prepare_form_encoded_body, prepare_headers, + prepare_request_uri_query, +) -from ...unittest import TestCase +from tests.unittest import TestCase class ParameterTests(TestCase): diff --git a/tests/oauth1/rfc5849/test_request_validator.py b/tests/oauth1/rfc5849/test_request_validator.py index a3fe58fa..8d344150 100644 --- a/tests/oauth1/rfc5849/test_request_validator.py +++ b/tests/oauth1/rfc5849/test_request_validator.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from oauthlib.oauth1 import RequestValidator -from ...unittest import TestCase +from tests.unittest import TestCase class RequestValidatorTests(TestCase): diff --git a/tests/oauth1/rfc5849/test_signatures.py b/tests/oauth1/rfc5849/test_signatures.py index 89219f74..2de4e8a1 100644 --- a/tests/oauth1/rfc5849/test_signatures.py +++ b/tests/oauth1/rfc5849/test_signatures.py @@ -1,19 +1,13 @@ # -*- coding: utf-8 -*- -from oauthlib.oauth1.rfc5849.signature import (collect_parameters, - signature_base_string, - base_string_uri, - normalize_parameters, - sign_hmac_sha1, - sign_hmac_sha1_with_client, - sign_plaintext, - sign_plaintext_with_client, - sign_rsa_sha1, - sign_rsa_sha1_with_client) from urllib.parse import quote -from ...unittest import TestCase - +from oauthlib.oauth1.rfc5849.signature import ( + base_string_uri, collect_parameters, normalize_parameters, sign_hmac_sha1, + sign_hmac_sha1_with_client, sign_plaintext, sign_plaintext_with_client, + sign_rsa_sha1, sign_rsa_sha1_with_client, signature_base_string, +) +from tests.unittest import TestCase class SignatureTests(TestCase): diff --git a/tests/oauth1/rfc5849/test_utils.py b/tests/oauth1/rfc5849/test_utils.py index ba8ed0e7..013c71a9 100644 --- a/tests/oauth1/rfc5849/test_utils.py +++ b/tests/oauth1/rfc5849/test_utils.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from oauthlib.oauth1.rfc5849.utils import * -from ...unittest import TestCase +from tests.unittest import TestCase class UtilsTests(TestCase): diff --git a/tests/oauth2/rfc6749/clients/test_backend_application.py b/tests/oauth2/rfc6749/clients/test_backend_application.py index b05786a8..c1489ac7 100644 --- a/tests/oauth2/rfc6749/clients/test_backend_application.py +++ b/tests/oauth2/rfc6749/clients/test_backend_application.py @@ -1,12 +1,11 @@ # -*- coding: utf-8 -*- import os - from unittest.mock import patch from oauthlib import signals from oauthlib.oauth2 import BackendApplicationClient -from ....unittest import TestCase +from tests.unittest import TestCase @patch('time.time', new=lambda: 1000) diff --git a/tests/oauth2/rfc6749/clients/test_base.py b/tests/oauth2/rfc6749/clients/test_base.py index c545c25e..c77cfed2 100644 --- a/tests/oauth2/rfc6749/clients/test_base.py +++ b/tests/oauth2/rfc6749/clients/test_base.py @@ -6,7 +6,7 @@ from oauthlib.oauth2.rfc6749 import utils from oauthlib.oauth2.rfc6749.clients import AUTH_HEADER, BODY, URI_QUERY -from ....unittest import TestCase +from tests.unittest import TestCase class ClientTest(TestCase): diff --git a/tests/oauth2/rfc6749/clients/test_legacy_application.py b/tests/oauth2/rfc6749/clients/test_legacy_application.py index 1daf2a37..b5a18194 100644 --- a/tests/oauth2/rfc6749/clients/test_legacy_application.py +++ b/tests/oauth2/rfc6749/clients/test_legacy_application.py @@ -1,14 +1,12 @@ # -*- coding: utf-8 -*- import os - +import urllib.parse as urlparse from unittest.mock import patch from oauthlib import signals from oauthlib.oauth2 import LegacyApplicationClient -import urllib.parse as urlparse - -from ....unittest import TestCase +from tests.unittest import TestCase @patch('time.time', new=lambda: 1000) diff --git a/tests/oauth2/rfc6749/clients/test_mobile_application.py b/tests/oauth2/rfc6749/clients/test_mobile_application.py index 2fb839ed..c40950c9 100644 --- a/tests/oauth2/rfc6749/clients/test_mobile_application.py +++ b/tests/oauth2/rfc6749/clients/test_mobile_application.py @@ -1,12 +1,11 @@ # -*- coding: utf-8 -*- import os - from unittest.mock import patch from oauthlib import signals from oauthlib.oauth2 import MobileApplicationClient -from ....unittest import TestCase +from tests.unittest import TestCase @patch('time.time', new=lambda: 1000) diff --git a/tests/oauth2/rfc6749/clients/test_service_application.py b/tests/oauth2/rfc6749/clients/test_service_application.py index 6f48e232..b97d8554 100644 --- a/tests/oauth2/rfc6749/clients/test_service_application.py +++ b/tests/oauth2/rfc6749/clients/test_service_application.py @@ -1,14 +1,14 @@ # -*- coding: utf-8 -*- import os from time import time +from unittest.mock import patch import jwt -from unittest.mock import patch from oauthlib.common import Request from oauthlib.oauth2 import ServiceApplicationClient -from ....unittest import TestCase +from tests.unittest import TestCase class ServiceApplicationClientTest(TestCase): diff --git a/tests/oauth2/rfc6749/clients/test_web_application.py b/tests/oauth2/rfc6749/clients/test_web_application.py index 719a07d2..1f711f4a 100644 --- a/tests/oauth2/rfc6749/clients/test_web_application.py +++ b/tests/oauth2/rfc6749/clients/test_web_application.py @@ -1,19 +1,18 @@ # -*- coding: utf-8 -*- import os +import urllib.parse as urlparse import warnings - from unittest.mock import patch from oauthlib import common, signals -from oauthlib.oauth2 import (BackendApplicationClient, Client, - LegacyApplicationClient, MobileApplicationClient, - WebApplicationClient) +from oauthlib.oauth2 import ( + BackendApplicationClient, Client, LegacyApplicationClient, + MobileApplicationClient, WebApplicationClient, +) from oauthlib.oauth2.rfc6749 import errors, utils from oauthlib.oauth2.rfc6749.clients import AUTH_HEADER, BODY, URI_QUERY -import urllib.parse as urlparse - -from ....unittest import TestCase +from tests.unittest import TestCase @patch('time.time', new=lambda: 1000) diff --git a/tests/oauth2/rfc6749/endpoints/test_base_endpoint.py b/tests/oauth2/rfc6749/endpoints/test_base_endpoint.py index 2289b58b..b1af6c33 100644 --- a/tests/oauth2/rfc6749/endpoints/test_base_endpoint.py +++ b/tests/oauth2/rfc6749/endpoints/test_base_endpoint.py @@ -1,10 +1,12 @@ # -*- coding: utf-8 -*- -from oauthlib.oauth2 import (FatalClientError, OAuth2Error, RequestValidator, - Server) -from oauthlib.oauth2.rfc6749 import (BaseEndpoint, - catch_errors_and_unavailability) +from oauthlib.oauth2 import ( + FatalClientError, OAuth2Error, RequestValidator, Server, +) +from oauthlib.oauth2.rfc6749 import ( + BaseEndpoint, catch_errors_and_unavailability, +) -from ....unittest import TestCase +from tests.unittest import TestCase class BaseEndpointTest(TestCase): diff --git a/tests/oauth2/rfc6749/endpoints/test_client_authentication.py b/tests/oauth2/rfc6749/endpoints/test_client_authentication.py index 69cb7eee..0659ee0d 100644 --- a/tests/oauth2/rfc6749/endpoints/test_client_authentication.py +++ b/tests/oauth2/rfc6749/endpoints/test_client_authentication.py @@ -10,14 +10,15 @@ prevents this check from being circumvented with a client form parameter. """ import json - from unittest import mock -from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer, - MobileApplicationServer, RequestValidator, - WebApplicationServer) +from oauthlib.oauth2 import ( + BackendApplicationServer, LegacyApplicationServer, MobileApplicationServer, + RequestValidator, WebApplicationServer, +) + +from tests.unittest import TestCase -from ....unittest import TestCase from .test_utils import get_fragment_credentials diff --git a/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py b/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py index 9a76da94..32c770cc 100644 --- a/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py +++ b/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py @@ -4,14 +4,15 @@ uri and the Implicit Grant will need to preserve state. """ import json - from unittest import mock -from oauthlib.oauth2 import (MobileApplicationServer, RequestValidator, - WebApplicationServer) +from oauthlib.oauth2 import ( + MobileApplicationServer, RequestValidator, WebApplicationServer, +) from oauthlib.oauth2.rfc6749 import errors -from ....unittest import TestCase +from tests.unittest import TestCase + from .test_utils import get_fragment_credentials, get_query_credentials diff --git a/tests/oauth2/rfc6749/endpoints/test_error_responses.py b/tests/oauth2/rfc6749/endpoints/test_error_responses.py index aac66df5..3f53c714 100644 --- a/tests/oauth2/rfc6749/endpoints/test_error_responses.py +++ b/tests/oauth2/rfc6749/endpoints/test_error_responses.py @@ -1,15 +1,16 @@ """Ensure the correct error responses are returned for all defined error types. """ import json - from unittest import mock from oauthlib.common import urlencode -from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer, - MobileApplicationServer, RequestValidator, - WebApplicationServer) +from oauthlib.oauth2 import ( + BackendApplicationServer, LegacyApplicationServer, MobileApplicationServer, + RequestValidator, WebApplicationServer, +) from oauthlib.oauth2.rfc6749 import errors -from ....unittest import TestCase + +from tests.unittest import TestCase class ErrorResponseTest(TestCase): diff --git a/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py b/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py index 936a1293..97aaf86d 100644 --- a/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py +++ b/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py @@ -2,11 +2,12 @@ """ from unittest import mock -from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer, - MobileApplicationServer, RequestValidator, - WebApplicationServer) +from oauthlib.oauth2 import ( + BackendApplicationServer, LegacyApplicationServer, MobileApplicationServer, + RequestValidator, WebApplicationServer, +) -from ....unittest import TestCase +from tests.unittest import TestCase class ExtraCredentialsTest(TestCase): diff --git a/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py b/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py index 3c67673c..04df6a2a 100644 --- a/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py +++ b/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py @@ -1,12 +1,11 @@ # -*- coding: utf-8 -*- from json import loads - from unittest.mock import MagicMock from oauthlib.common import urlencode -from oauthlib.oauth2 import RequestValidator, IntrospectEndpoint +from oauthlib.oauth2 import IntrospectEndpoint, RequestValidator -from ....unittest import TestCase +from tests.unittest import TestCase class IntrospectEndpointTest(TestCase): diff --git a/tests/oauth2/rfc6749/endpoints/test_metadata.py b/tests/oauth2/rfc6749/endpoints/test_metadata.py index a01500f7..681119a2 100644 --- a/tests/oauth2/rfc6749/endpoints/test_metadata.py +++ b/tests/oauth2/rfc6749/endpoints/test_metadata.py @@ -1,9 +1,7 @@ # -*- coding: utf-8 -*- -from oauthlib.oauth2 import MetadataEndpoint -from oauthlib.oauth2 import TokenEndpoint -from oauthlib.oauth2 import Server +from oauthlib.oauth2 import MetadataEndpoint, Server, TokenEndpoint -from ....unittest import TestCase +from tests.unittest import TestCase class MetadataEndpointTest(TestCase): diff --git a/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py b/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py index 6280caca..04533888 100644 --- a/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py +++ b/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py @@ -1,14 +1,15 @@ """Ensure all tokens are associated with a resource owner. """ import json - from unittest import mock -from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer, - MobileApplicationServer, RequestValidator, - WebApplicationServer) +from oauthlib.oauth2 import ( + BackendApplicationServer, LegacyApplicationServer, MobileApplicationServer, + RequestValidator, WebApplicationServer, +) + +from tests.unittest import TestCase -from ....unittest import TestCase from .test_utils import get_fragment_credentials, get_query_credentials diff --git a/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py b/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py index 6bfba9a1..a4182eb8 100644 --- a/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py +++ b/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py @@ -1,12 +1,11 @@ # -*- coding: utf-8 -*- from json import loads - from unittest.mock import MagicMock from oauthlib.common import urlencode from oauthlib.oauth2 import RequestValidator, RevocationEndpoint -from ....unittest import TestCase +from tests.unittest import TestCase class RevocationEndpointTest(TestCase): diff --git a/tests/oauth2/rfc6749/endpoints/test_scope_handling.py b/tests/oauth2/rfc6749/endpoints/test_scope_handling.py index 0bf760b8..4c87d9c7 100644 --- a/tests/oauth2/rfc6749/endpoints/test_scope_handling.py +++ b/tests/oauth2/rfc6749/endpoints/test_scope_handling.py @@ -4,14 +4,15 @@ need to be persisted temporarily in an authorization code. """ import json - from unittest import mock -from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer, - MobileApplicationServer, RequestValidator, Server, - WebApplicationServer) +from oauthlib.oauth2 import ( + BackendApplicationServer, LegacyApplicationServer, MobileApplicationServer, + RequestValidator, Server, WebApplicationServer, +) + +from tests.unittest import TestCase -from ....unittest import TestCase from .test_utils import get_fragment_credentials, get_query_credentials diff --git a/tests/oauth2/rfc6749/grant_types/test_authorization_code.py b/tests/oauth2/rfc6749/grant_types/test_authorization_code.py index a9e384fb..20a2416f 100644 --- a/tests/oauth2/rfc6749/grant_types/test_authorization_code.py +++ b/tests/oauth2/rfc6749/grant_types/test_authorization_code.py @@ -1,15 +1,15 @@ # -*- coding: utf-8 -*- import json - from unittest import mock from oauthlib.common import Request from oauthlib.oauth2.rfc6749 import errors -from oauthlib.oauth2.rfc6749.grant_types import AuthorizationCodeGrant -from oauthlib.oauth2.rfc6749.grant_types import authorization_code +from oauthlib.oauth2.rfc6749.grant_types import ( + AuthorizationCodeGrant, authorization_code, +) from oauthlib.oauth2.rfc6749.tokens import BearerToken -from ....unittest import TestCase +from tests.unittest import TestCase class AuthorizationCodeGrantTest(TestCase): diff --git a/tests/oauth2/rfc6749/grant_types/test_client_credentials.py b/tests/oauth2/rfc6749/grant_types/test_client_credentials.py index 0a45ef68..e9559c79 100644 --- a/tests/oauth2/rfc6749/grant_types/test_client_credentials.py +++ b/tests/oauth2/rfc6749/grant_types/test_client_credentials.py @@ -1,13 +1,12 @@ # -*- coding: utf-8 -*- import json - from unittest import mock from oauthlib.common import Request from oauthlib.oauth2.rfc6749.grant_types import ClientCredentialsGrant from oauthlib.oauth2.rfc6749.tokens import BearerToken -from ....unittest import TestCase +from tests.unittest import TestCase class ClientCredentialsGrantTest(TestCase): diff --git a/tests/oauth2/rfc6749/grant_types/test_implicit.py b/tests/oauth2/rfc6749/grant_types/test_implicit.py index 4a0313d5..1fb71a1d 100644 --- a/tests/oauth2/rfc6749/grant_types/test_implicit.py +++ b/tests/oauth2/rfc6749/grant_types/test_implicit.py @@ -5,7 +5,7 @@ from oauthlib.oauth2.rfc6749.grant_types import ImplicitGrant from oauthlib.oauth2.rfc6749.tokens import BearerToken -from ....unittest import TestCase +from tests.unittest import TestCase class ImplicitGrantTest(TestCase): diff --git a/tests/oauth2/rfc6749/grant_types/test_refresh_token.py b/tests/oauth2/rfc6749/grant_types/test_refresh_token.py index 0d0fd37d..1d3e77a0 100644 --- a/tests/oauth2/rfc6749/grant_types/test_refresh_token.py +++ b/tests/oauth2/rfc6749/grant_types/test_refresh_token.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- import json - from unittest import mock from oauthlib.common import Request @@ -8,7 +7,7 @@ from oauthlib.oauth2.rfc6749.grant_types import RefreshTokenGrant from oauthlib.oauth2.rfc6749.tokens import BearerToken -from ....unittest import TestCase +from tests.unittest import TestCase class RefreshTokenGrantTest(TestCase): diff --git a/tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py b/tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py index 42f0aa62..294e27be 100644 --- a/tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py +++ b/tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py @@ -1,15 +1,15 @@ # -*- coding: utf-8 -*- import json - from unittest import mock from oauthlib.common import Request from oauthlib.oauth2.rfc6749 import errors -from oauthlib.oauth2.rfc6749.grant_types import \ - ResourceOwnerPasswordCredentialsGrant +from oauthlib.oauth2.rfc6749.grant_types import ( + ResourceOwnerPasswordCredentialsGrant, +) from oauthlib.oauth2.rfc6749.tokens import BearerToken -from ....unittest import TestCase +from tests.unittest import TestCase class ResourceOwnerPasswordCredentialsGrantTest(TestCase): diff --git a/tests/oauth2/rfc6749/test_parameters.py b/tests/oauth2/rfc6749/test_parameters.py index 43804479..f9245ec7 100644 --- a/tests/oauth2/rfc6749/test_parameters.py +++ b/tests/oauth2/rfc6749/test_parameters.py @@ -4,7 +4,7 @@ from oauthlib.oauth2.rfc6749.errors import * from oauthlib.oauth2.rfc6749.parameters import * -from ...unittest import TestCase +from tests.unittest import TestCase @patch('time.time', new=lambda: 1000) diff --git a/tests/oauth2/rfc6749/test_request_validator.py b/tests/oauth2/rfc6749/test_request_validator.py index 257280c4..9688b5a7 100644 --- a/tests/oauth2/rfc6749/test_request_validator.py +++ b/tests/oauth2/rfc6749/test_request_validator.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from oauthlib.oauth2 import RequestValidator -from ...unittest import TestCase +from tests.unittest import TestCase class RequestValidatorTest(TestCase): diff --git a/tests/oauth2/rfc6749/test_server.py b/tests/oauth2/rfc6749/test_server.py index e6ad5cdc..94af37e5 100644 --- a/tests/oauth2/rfc6749/test_server.py +++ b/tests/oauth2/rfc6749/test_server.py @@ -1,20 +1,21 @@ # -*- coding: utf-8 -*- import json - from unittest import mock from oauthlib import common from oauthlib.oauth2.rfc6749 import errors, tokens from oauthlib.oauth2.rfc6749.endpoints import Server -from oauthlib.oauth2.rfc6749.endpoints.authorization import AuthorizationEndpoint +from oauthlib.oauth2.rfc6749.endpoints.authorization import ( + AuthorizationEndpoint, +) from oauthlib.oauth2.rfc6749.endpoints.resource import ResourceEndpoint from oauthlib.oauth2.rfc6749.endpoints.token import TokenEndpoint -from oauthlib.oauth2.rfc6749.grant_types import (AuthorizationCodeGrant, - ClientCredentialsGrant, - ImplicitGrant, - ResourceOwnerPasswordCredentialsGrant) +from oauthlib.oauth2.rfc6749.grant_types import ( + AuthorizationCodeGrant, ClientCredentialsGrant, ImplicitGrant, + ResourceOwnerPasswordCredentialsGrant, +) -from ...unittest import TestCase +from tests.unittest import TestCase class AuthorizationEndpointTest(TestCase): diff --git a/tests/oauth2/rfc6749/test_tokens.py b/tests/oauth2/rfc6749/test_tokens.py index 8402133a..fa6b1c09 100644 --- a/tests/oauth2/rfc6749/test_tokens.py +++ b/tests/oauth2/rfc6749/test_tokens.py @@ -2,14 +2,11 @@ from oauthlib.common import Request from oauthlib.oauth2.rfc6749.tokens import ( - BearerToken, - prepare_bearer_body, - prepare_bearer_headers, - prepare_bearer_uri, - prepare_mac_header, + BearerToken, prepare_bearer_body, prepare_bearer_headers, + prepare_bearer_uri, prepare_mac_header, ) -from ...unittest import TestCase +from tests.unittest import TestCase class TokenTest(TestCase): diff --git a/tests/oauth2/rfc6749/test_utils.py b/tests/oauth2/rfc6749/test_utils.py index cfc6c2cb..32995919 100644 --- a/tests/oauth2/rfc6749/test_utils.py +++ b/tests/oauth2/rfc6749/test_utils.py @@ -1,11 +1,12 @@ import datetime import os -from oauthlib.oauth2.rfc6749.utils import (escape, generate_age, host_from_uri, - is_secure_transport, list_to_scope, - params_from_uri, scope_to_list) +from oauthlib.oauth2.rfc6749.utils import ( + escape, generate_age, host_from_uri, is_secure_transport, list_to_scope, + params_from_uri, scope_to_list, +) -from ...unittest import TestCase +from tests.unittest import TestCase class ScopeObject: diff --git a/tests/openid/connect/core/endpoints/test_claims_handling.py b/tests/openid/connect/core/endpoints/test_claims_handling.py index 1fe86ef5..bc702690 100644 --- a/tests/openid/connect/core/endpoints/test_claims_handling.py +++ b/tests/openid/connect/core/endpoints/test_claims_handling.py @@ -11,8 +11,8 @@ from oauthlib.openid import RequestValidator from oauthlib.openid.connect.core.endpoints.pre_configured import Server -from tests.unittest import TestCase from tests.oauth2.rfc6749.endpoints.test_utils import get_query_credentials +from tests.unittest import TestCase class TestClaimsHandling(TestCase): diff --git a/tests/openid/connect/core/endpoints/test_openid_connect_params_handling.py b/tests/openid/connect/core/endpoints/test_openid_connect_params_handling.py index 98482e2c..c55136fb 100644 --- a/tests/openid/connect/core/endpoints/test_openid_connect_params_handling.py +++ b/tests/openid/connect/core/endpoints/test_openid_connect_params_handling.py @@ -1,11 +1,12 @@ from unittest import mock +from urllib.parse import urlencode from oauthlib.oauth2 import InvalidRequestError -from oauthlib.oauth2.rfc6749.endpoints.authorization import \ - AuthorizationEndpoint +from oauthlib.oauth2.rfc6749.endpoints.authorization import ( + AuthorizationEndpoint, +) from oauthlib.oauth2.rfc6749.tokens import BearerToken from oauthlib.openid.connect.core.grant_types import AuthorizationCodeGrant -from urllib.parse import urlencode from tests.unittest import TestCase diff --git a/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py b/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py index dd48bddc..48334851 100644 --- a/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py +++ b/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py @@ -1,10 +1,9 @@ # -*- coding: utf-8 -*- -from unittest import mock import json +from unittest import mock -from oauthlib.openid import RequestValidator -from oauthlib.openid import UserInfoEndpoint from oauthlib.oauth2.rfc6749 import errors +from oauthlib.openid import RequestValidator, UserInfoEndpoint from tests.unittest import TestCase diff --git a/tests/openid/connect/core/grant_types/test_authorization_code.py b/tests/openid/connect/core/grant_types/test_authorization_code.py index 829af927..91e24b36 100644 --- a/tests/openid/connect/core/grant_types/test_authorization_code.py +++ b/tests/openid/connect/core/grant_types/test_authorization_code.py @@ -1,17 +1,18 @@ # -*- coding: utf-8 -*- import json - from unittest import mock from oauthlib.common import Request from oauthlib.oauth2.rfc6749.tokens import BearerToken - -from oauthlib.openid.connect.core.grant_types.authorization_code import AuthorizationCodeGrant +from oauthlib.openid.connect.core.grant_types.authorization_code import ( + AuthorizationCodeGrant, +) from oauthlib.openid.connect.core.grant_types.exceptions import OIDCNoPrompt +from tests.oauth2.rfc6749.grant_types.test_authorization_code import ( + AuthorizationCodeGrantTest, +) from tests.unittest import TestCase -from tests.oauth2.rfc6749.grant_types.test_authorization_code import \ - AuthorizationCodeGrantTest def get_id_token_mock(token, token_handler, request): diff --git a/tests/openid/connect/core/grant_types/test_base.py b/tests/openid/connect/core/grant_types/test_base.py index 786b24b0..a88834b8 100644 --- a/tests/openid/connect/core/grant_types/test_base.py +++ b/tests/openid/connect/core/grant_types/test_base.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -from unittest import mock import time +from unittest import mock from oauthlib.common import Request from oauthlib.openid.connect.core.grant_types.base import GrantTypeBase diff --git a/tests/openid/connect/core/grant_types/test_dispatchers.py b/tests/openid/connect/core/grant_types/test_dispatchers.py index d4239157..ccbada49 100644 --- a/tests/openid/connect/core/grant_types/test_dispatchers.py +++ b/tests/openid/connect/core/grant_types/test_dispatchers.py @@ -2,19 +2,17 @@ from unittest import mock from oauthlib.common import Request - -from oauthlib.openid.connect.core.grant_types.authorization_code import AuthorizationCodeGrant -from oauthlib.openid.connect.core.grant_types.implicit import ImplicitGrant -from oauthlib.openid.connect.core.grant_types.dispatchers import ( - ImplicitTokenGrantDispatcher, - AuthorizationTokenGrantDispatcher -) - from oauthlib.oauth2.rfc6749.grant_types import ( AuthorizationCodeGrant as OAuth2AuthorizationCodeGrant, ImplicitGrant as OAuth2ImplicitGrant, ) - +from oauthlib.openid.connect.core.grant_types.authorization_code import ( + AuthorizationCodeGrant, +) +from oauthlib.openid.connect.core.grant_types.dispatchers import ( + AuthorizationTokenGrantDispatcher, ImplicitTokenGrantDispatcher, +) +from oauthlib.openid.connect.core.grant_types.implicit import ImplicitGrant from tests.unittest import TestCase diff --git a/tests/openid/connect/core/grant_types/test_hybrid.py b/tests/openid/connect/core/grant_types/test_hybrid.py index 53175dfe..fb61b04b 100644 --- a/tests/openid/connect/core/grant_types/test_hybrid.py +++ b/tests/openid/connect/core/grant_types/test_hybrid.py @@ -4,8 +4,11 @@ from oauthlib.oauth2.rfc6749 import errors from oauthlib.oauth2.rfc6749.tokens import BearerToken from oauthlib.openid.connect.core.grant_types.hybrid import HybridGrant -from tests.oauth2.rfc6749.grant_types.test_authorization_code import \ - AuthorizationCodeGrantTest + +from tests.oauth2.rfc6749.grant_types.test_authorization_code import ( + AuthorizationCodeGrantTest, +) + from .test_authorization_code import OpenIDAuthCodeTest diff --git a/tests/openid/connect/core/grant_types/test_implicit.py b/tests/openid/connect/core/grant_types/test_implicit.py index b914eb60..80069ac1 100644 --- a/tests/openid/connect/core/grant_types/test_implicit.py +++ b/tests/openid/connect/core/grant_types/test_implicit.py @@ -6,8 +6,10 @@ from oauthlib.oauth2.rfc6749.tokens import BearerToken from oauthlib.openid.connect.core.grant_types.exceptions import OIDCNoPrompt from oauthlib.openid.connect.core.grant_types.implicit import ImplicitGrant + from tests.oauth2.rfc6749.grant_types.test_implicit import ImplicitGrantTest from tests.unittest import TestCase + from .test_authorization_code import get_id_token_mock diff --git a/tests/openid/connect/core/test_server.py b/tests/openid/connect/core/test_server.py index bb3cc3cd..47f0ecc8 100644 --- a/tests/openid/connect/core/test_server.py +++ b/tests/openid/connect/core/test_server.py @@ -1,16 +1,18 @@ # -*- coding: utf-8 -*- import json - from unittest import mock from oauthlib.oauth2.rfc6749 import errors -from oauthlib.oauth2.rfc6749.endpoints.authorization import AuthorizationEndpoint +from oauthlib.oauth2.rfc6749.endpoints.authorization import ( + AuthorizationEndpoint, +) from oauthlib.oauth2.rfc6749.endpoints.token import TokenEndpoint from oauthlib.oauth2.rfc6749.tokens import BearerToken - -from oauthlib.openid.connect.core.grant_types.authorization_code import AuthorizationCodeGrant -from oauthlib.openid.connect.core.grant_types.implicit import ImplicitGrant +from oauthlib.openid.connect.core.grant_types.authorization_code import ( + AuthorizationCodeGrant, +) from oauthlib.openid.connect.core.grant_types.hybrid import HybridGrant +from oauthlib.openid.connect.core.grant_types.implicit import ImplicitGrant from tests.unittest import TestCase diff --git a/tests/test_common.py b/tests/test_common.py index b0fb4b02..7f0e35bc 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -1,14 +1,12 @@ # -*- coding: utf-8 -*- -import os -import sys - import oauthlib -from oauthlib.common import (CaseInsensitiveDict, Request, add_params_to_uri, - extract_params, generate_client_id, - generate_nonce, generate_timestamp, - generate_token, urldecode) +from oauthlib.common import ( + CaseInsensitiveDict, Request, add_params_to_uri, extract_params, + generate_client_id, generate_nonce, generate_timestamp, generate_token, + urldecode, +) -from .unittest import TestCase +from tests.unittest import TestCase PARAMS_DICT = {'foo': 'bar', 'baz': '123', } PARAMS_TWOTUPLE = [('foo', 'bar'), ('baz', '123')] diff --git a/tests/unittest/__init__.py b/tests/unittest/__init__.py index 13ad92fd..f94f35c6 100644 --- a/tests/unittest/__init__.py +++ b/tests/unittest/__init__.py @@ -1,5 +1,5 @@ -from unittest import TestCase import urllib.parse as urlparse +from unittest import TestCase # URL comparison where query param order is insignificant diff --git a/tox.ini b/tox.ini index 32cd5bf9..aad45384 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py35,py36,py37,pypy,pypy3,docs,readme,bandit +envlist = py35,py36,py37,pypy,pypy3,docs,readme,bandit,isort [testenv] deps= @@ -34,3 +34,10 @@ skipsdist=True deps=bandit commands=bandit -b bandit.json -r oauthlib/ whitelist_externals=bandit + +[testenv:isort] +basepython = python3.7 +usedevelop = false +deps = isort +changedir = {toxinidir} +commands = isort --recursive --check-only --diff oauthlib tests
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: