summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Huot <JonathanHuot@users.noreply.github.com>2020-04-22 16:31:44 +0200
committerGitHub <noreply@github.com>2020-04-22 16:31:44 +0200
commit6875e3ac513a3828c3328d4f585d4c38b2b2c698 (patch)
tree3ebf7d0a8b521f91a769e1f31c9bf8d4cc75e110
parent406653fc3018b8ae292234caef6df434cf612a52 (diff)
parent3e582846591e213ba8ec1780a5a5aadf69a090a2 (diff)
downloadoauthlib-6875e3ac513a3828c3328d4f585d4c38b2b2c698.tar.gz
Merge pull request #727 from antonrh/isort-integration
-rw-r--r--Makefile6
-rw-r--r--oauthlib/common.py7
-rw-r--r--oauthlib/oauth1/__init__.py21
-rw-r--r--oauthlib/oauth1/rfc5849/__init__.py12
-rw-r--r--oauthlib/oauth1/rfc5849/endpoints/__init__.py7
-rw-r--r--oauthlib/oauth1/rfc5849/endpoints/authorization.py5
-rw-r--r--oauthlib/oauth1/rfc5849/endpoints/base.py8
-rw-r--r--oauthlib/oauth1/rfc5849/endpoints/pre_configured.py6
-rw-r--r--oauthlib/oauth1/rfc5849/parameters.py4
-rw-r--r--oauthlib/oauth1/rfc5849/request_validator.py2
-rw-r--r--oauthlib/oauth1/rfc5849/signature.py3
-rw-r--r--oauthlib/oauth1/rfc5849/utils.py3
-rw-r--r--oauthlib/oauth2/__init__.py48
-rw-r--r--oauthlib/oauth2/rfc6749/__init__.py9
-rw-r--r--oauthlib/oauth2/rfc6749/clients/__init__.py8
-rw-r--r--oauthlib/oauth2/rfc6749/clients/backend_application.py2
-rw-r--r--oauthlib/oauth2/rfc6749/clients/base.py12
-rw-r--r--oauthlib/oauth2/rfc6749/clients/legacy_application.py2
-rw-r--r--oauthlib/oauth2/rfc6749/clients/service_application.py2
-rw-r--r--oauthlib/oauth2/rfc6749/clients/web_application.py7
-rw-r--r--oauthlib/oauth2/rfc6749/endpoints/__init__.py11
-rw-r--r--oauthlib/oauth2/rfc6749/endpoints/base.py9
-rw-r--r--oauthlib/oauth2/rfc6749/endpoints/introspect.py2
-rw-r--r--oauthlib/oauth2/rfc6749/endpoints/metadata.py7
-rw-r--r--oauthlib/oauth2/rfc6749/endpoints/pre_configured.py9
-rw-r--r--oauthlib/oauth2/rfc6749/endpoints/revocation.py2
-rw-r--r--oauthlib/oauth2/rfc6749/grant_types/__init__.py6
-rw-r--r--oauthlib/oauth2/rfc6749/grant_types/base.py2
-rw-r--r--oauthlib/oauth2/rfc6749/grant_types/client_credentials.py1
-rw-r--r--oauthlib/oauth2/rfc6749/grant_types/refresh_token.py1
-rw-r--r--oauthlib/oauth2/rfc6749/grant_types/resource_owner_password_credentials.py1
-rw-r--r--oauthlib/oauth2/rfc6749/parameters.py9
-rw-r--r--oauthlib/oauth2/rfc6749/tokens.py5
-rw-r--r--oauthlib/oauth2/rfc6749/utils.py3
-rw-r--r--oauthlib/openid/__init__.py3
-rw-r--r--oauthlib/openid/connect/core/endpoints/pre_configured.py23
-rw-r--r--oauthlib/openid/connect/core/endpoints/userinfo.py8
-rw-r--r--oauthlib/openid/connect/core/grant_types/__init__.py9
-rw-r--r--oauthlib/openid/connect/core/grant_types/authorization_code.py4
-rw-r--r--oauthlib/openid/connect/core/grant_types/base.py8
-rw-r--r--oauthlib/openid/connect/core/grant_types/dispatchers.py1
-rw-r--r--oauthlib/openid/connect/core/grant_types/hybrid.py6
-rw-r--r--oauthlib/openid/connect/core/grant_types/implicit.py8
-rw-r--r--oauthlib/openid/connect/core/request_validator.py4
-rw-r--r--setup.cfg10
-rw-r--r--tests/oauth1/rfc5849/endpoints/test_access_token.py2
-rw-r--r--tests/oauth1/rfc5849/endpoints/test_base.py15
-rw-r--r--tests/oauth1/rfc5849/endpoints/test_request_token.py2
-rw-r--r--tests/oauth1/rfc5849/endpoints/test_resource.py2
-rw-r--r--tests/oauth1/rfc5849/endpoints/test_signature_only.py2
-rw-r--r--tests/oauth1/rfc5849/test_client.py9
-rw-r--r--tests/oauth1/rfc5849/test_parameters.py10
-rw-r--r--tests/oauth1/rfc5849/test_request_validator.py2
-rw-r--r--tests/oauth1/rfc5849/test_signatures.py18
-rw-r--r--tests/oauth1/rfc5849/test_utils.py2
-rw-r--r--tests/oauth2/rfc6749/clients/test_backend_application.py3
-rw-r--r--tests/oauth2/rfc6749/clients/test_base.py2
-rw-r--r--tests/oauth2/rfc6749/clients/test_legacy_application.py6
-rw-r--r--tests/oauth2/rfc6749/clients/test_mobile_application.py3
-rw-r--r--tests/oauth2/rfc6749/clients/test_service_application.py4
-rw-r--r--tests/oauth2/rfc6749/clients/test_web_application.py13
-rw-r--r--tests/oauth2/rfc6749/endpoints/test_base_endpoint.py12
-rw-r--r--tests/oauth2/rfc6749/endpoints/test_client_authentication.py11
-rw-r--r--tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py9
-rw-r--r--tests/oauth2/rfc6749/endpoints/test_error_responses.py11
-rw-r--r--tests/oauth2/rfc6749/endpoints/test_extra_credentials.py9
-rw-r--r--tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py5
-rw-r--r--tests/oauth2/rfc6749/endpoints/test_metadata.py6
-rw-r--r--tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py11
-rw-r--r--tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py3
-rw-r--r--tests/oauth2/rfc6749/endpoints/test_scope_handling.py11
-rw-r--r--tests/oauth2/rfc6749/grant_types/test_authorization_code.py8
-rw-r--r--tests/oauth2/rfc6749/grant_types/test_client_credentials.py3
-rw-r--r--tests/oauth2/rfc6749/grant_types/test_implicit.py2
-rw-r--r--tests/oauth2/rfc6749/grant_types/test_refresh_token.py3
-rw-r--r--tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py8
-rw-r--r--tests/oauth2/rfc6749/test_parameters.py2
-rw-r--r--tests/oauth2/rfc6749/test_request_validator.py2
-rw-r--r--tests/oauth2/rfc6749/test_server.py15
-rw-r--r--tests/oauth2/rfc6749/test_tokens.py9
-rw-r--r--tests/oauth2/rfc6749/test_utils.py9
-rw-r--r--tests/openid/connect/core/endpoints/test_claims_handling.py2
-rw-r--r--tests/openid/connect/core/endpoints/test_openid_connect_params_handling.py7
-rw-r--r--tests/openid/connect/core/endpoints/test_userinfo_endpoint.py5
-rw-r--r--tests/openid/connect/core/grant_types/test_authorization_code.py11
-rw-r--r--tests/openid/connect/core/grant_types/test_base.py2
-rw-r--r--tests/openid/connect/core/grant_types/test_dispatchers.py16
-rw-r--r--tests/openid/connect/core/grant_types/test_hybrid.py7
-rw-r--r--tests/openid/connect/core/grant_types/test_implicit.py2
-rw-r--r--tests/openid/connect/core/test_server.py12
-rw-r--r--tests/test_common.py14
-rw-r--r--tests/unittest/__init__.py2
-rw-r--r--tox.ini9
93 files changed, 344 insertions, 315 deletions
diff --git a/Makefile b/Makefile
index 64fdc8e..b1fbb39 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 e7131df..e8ac1ae 100644
--- a/oauthlib/common.py
+++ b/oauthlib/common.py
@@ -12,10 +12,11 @@ import logging
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 e6d8a80..f011c2c 100644
--- a/oauthlib/oauth1/__init__.py
+++ b/oauthlib/oauth1/__init__.py
@@ -6,12 +6,17 @@ oauthlib.oauth1
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 b629fc1..c639667 100644
--- a/oauthlib/oauth1/rfc5849/__init__.py
+++ b/oauthlib/oauth1/rfc5849/__init__.py
@@ -9,14 +9,18 @@ for signing and checking OAuth 1.0 RFC 5849 requests.
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 78ade72..9f30389 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 7d0353b..00d9576 100644
--- a/oauthlib/oauth1/rfc5849/endpoints/authorization.py
+++ b/oauthlib/oauth1/rfc5849/endpoints/authorization.py
@@ -6,11 +6,12 @@ oauthlib.oauth1.rfc5849.endpoints.authorization
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 f9a8f57..8103606 100644
--- a/oauthlib/oauth1/rfc5849/endpoints/base.py
+++ b/oauthlib/oauth1/rfc5849/endpoints/base.py
@@ -10,9 +10,11 @@ import time
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 b14a6d8..23e3cfc 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 778a46d..a9fe23c 100644
--- a/oauthlib/oauth1/rfc5849/parameters.py
+++ b/oauthlib/oauth1/rfc5849/parameters.py
@@ -7,12 +7,12 @@ This module contains methods related to `section 3.5`_ of the OAuth 1.0a spec.
.. _`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 657bfe3..750902f 100644
--- a/oauthlib/oauth1/rfc5849/request_validator.py
+++ b/oauthlib/oauth1/rfc5849/request_validator.py
@@ -6,8 +6,6 @@ oauthlib.oauth1.rfc5849
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 fdc359e..b11720e 100644
--- a/oauthlib/oauth1/rfc5849/signature.py
+++ b/oauthlib/oauth1/rfc5849/signature.py
@@ -25,13 +25,12 @@ import binascii
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 28e006a..4d22a3e 100644
--- a/oauthlib/oauth1/rfc5849/utils.py
+++ b/oauthlib/oauth1/rfc5849/utils.py
@@ -6,10 +6,9 @@ oauthlib.utils
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 9186800..047d8e0 100644
--- a/oauthlib/oauth2/__init__.py
+++ b/oauthlib/oauth2/__init__.py
@@ -6,29 +6,31 @@ oauthlib.oauth2
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 1c11234..1823e9e 100644
--- a/oauthlib/oauth2/rfc6749/__init__.py
+++ b/oauthlib/oauth2/rfc6749/__init__.py
@@ -9,10 +9,9 @@ for consuming and providing OAuth 2.0 RFC6749.
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 6fef738..8fc6c95 100644
--- a/oauthlib/oauth2/rfc6749/clients/__init__.py
+++ b/oauthlib/oauth2/rfc6749/clients/__init__.py
@@ -6,9 +6,9 @@ oauthlib.oauth2.rfc6749
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 5ffe6ae..0e2a829 100644
--- a/oauthlib/oauth2/rfc6749/clients/backend_application.py
+++ b/oauthlib/oauth2/rfc6749/clients/backend_application.py
@@ -6,7 +6,7 @@ oauthlib.oauth2.rfc6749
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 4043258..88065ab 100644
--- a/oauthlib/oauth2/rfc6749/clients/base.py
+++ b/oauthlib/oauth2/rfc6749/clients/base.py
@@ -11,11 +11,13 @@ import warnings
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 fe2ff4a..7af68f3 100644
--- a/oauthlib/oauth2/rfc6749/clients/legacy_application.py
+++ b/oauthlib/oauth2/rfc6749/clients/legacy_application.py
@@ -6,7 +6,7 @@ oauthlib.oauth2.rfc6749
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 34c2a66..c751c8b 100644
--- a/oauthlib/oauth2/rfc6749/clients/service_application.py
+++ b/oauthlib/oauth2/rfc6749/clients/service_application.py
@@ -10,7 +10,7 @@ import time
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 42b2c96..a1f3db1 100644
--- a/oauthlib/oauth2/rfc6749/clients/web_application.py
+++ b/oauthlib/oauth2/rfc6749/clients/web_application.py
@@ -8,9 +8,10 @@ for consuming and providing OAuth 2.0 RFC6749.
"""
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 49e7ee9..851853f 100644
--- a/oauthlib/oauth2/rfc6749/endpoints/__init__.py
+++ b/oauthlib/oauth2/rfc6749/endpoints/__init__.py
@@ -9,11 +9,10 @@ for consuming and providing OAuth 2.0 RFC6749.
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 5169517..e59d401 100644
--- a/oauthlib/oauth2/rfc6749/endpoints/base.py
+++ b/oauthlib/oauth2/rfc6749/endpoints/base.py
@@ -9,11 +9,10 @@ for consuming and providing OAuth 2.0 RFC6749.
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 bad8950..1199031 100644
--- a/oauthlib/oauth2/rfc6749/endpoints/introspect.py
+++ b/oauthlib/oauth2/rfc6749/endpoints/introspect.py
@@ -12,7 +12,7 @@ import logging
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 6bc078d..815f4b0 100644
--- a/oauthlib/oauth2/rfc6749/endpoints/metadata.py
+++ b/oauthlib/oauth2/rfc6749/endpoints/metadata.py
@@ -11,13 +11,12 @@ import copy
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 7b17dc4..0130f9e 100644
--- a/oauthlib/oauth2/rfc6749/endpoints/pre_configured.py
+++ b/oauthlib/oauth2/rfc6749/endpoints/pre_configured.py
@@ -6,11 +6,10 @@ oauthlib.oauth2.rfc6749.endpoints.pre_configured
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 ed245f3..0eb25d3 100644
--- a/oauthlib/oauth2/rfc6749/endpoints/revocation.py
+++ b/oauthlib/oauth2/rfc6749/endpoints/revocation.py
@@ -11,7 +11,7 @@ import logging
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 30c90d7..195cd09 100644
--- a/oauthlib/oauth2/rfc6749/grant_types/__init__.py
+++ b/oauthlib/oauth2/rfc6749/grant_types/__init__.py
@@ -4,7 +4,9 @@ oauthlib.oauth2.rfc6749.grant_types
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"""
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 66e1fd1..51ba81b 100644
--- a/oauthlib/oauth2/rfc6749/grant_types/base.py
+++ b/oauthlib/oauth2/rfc6749/grant_types/base.py
@@ -7,8 +7,8 @@ import logging
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 05f13af..d2c0ea4 100644
--- a/oauthlib/oauth2/rfc6749/grant_types/client_credentials.py
+++ b/oauthlib/oauth2/rfc6749/grant_types/client_credentials.py
@@ -7,7 +7,6 @@ import json
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 e7405d2..cc0ad0d 100644
--- a/oauthlib/oauth2/rfc6749/grant_types/refresh_token.py
+++ b/oauthlib/oauth2/rfc6749/grant_types/refresh_token.py
@@ -7,7 +7,6 @@ import json
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 9c8ee1d..b65b3e7 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 json
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 54c8d24..b5d5f41 100644
--- a/oauthlib/oauth2/rfc6749/parameters.py
+++ b/oauthlib/oauth2/rfc6749/parameters.py
@@ -10,14 +10,15 @@ This module contains methods related to `Section 4`_ of the OAuth 2 RFC.
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 6f6b1f6..6284248 100644
--- a/oauthlib/oauth2/rfc6749/tokens.py
+++ b/oauthlib/oauth2/rfc6749/tokens.py
@@ -9,17 +9,16 @@ This module contains methods for adding two types of access tokens to requests.
"""
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 3117d4b..f7f2ab4 100644
--- a/oauthlib/oauth2/rfc6749/utils.py
+++ b/oauthlib/oauth2/rfc6749/utils.py
@@ -7,10 +7,9 @@ This module contains utility methods used by various parts of the OAuth 2 spec.
"""
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 fb1ac8d..8a34e59 100644
--- a/oauthlib/openid/__init__.py
+++ b/oauthlib/openid/__init__.py
@@ -4,6 +4,5 @@ oauthlib.openid
~~~~~~~~~~~~~~
"""
-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 ca8199d..03ac8f6 100644
--- a/oauthlib/openid/connect/core/endpoints/pre_configured.py
+++ b/oauthlib/openid/connect/core/endpoints/pre_configured.py
@@ -7,29 +7,20 @@ This module is an implementation of various endpoints needed
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 dc73373..1c29cc5 100644
--- a/oauthlib/openid/connect/core/endpoints/userinfo.py
+++ b/oauthlib/openid/connect/core/endpoints/userinfo.py
@@ -8,11 +8,11 @@ import json
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 4e7b474..b126218 100644
--- a/oauthlib/openid/connect/core/grant_types/__init__.py
+++ b/oauthlib/openid/connect/core/grant_types/__init__.py
@@ -4,12 +4,11 @@ oauthlib.openid.connect.core.grant_types
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"""
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 d07d138..d38b028 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 @@ oauthlib.openid.connect.core.grant_types
"""
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 cd27237..d0a4812 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 6dcc0cb..2734c38 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 caf8547..a8dd564 100644
--- a/oauthlib/openid/connect/core/grant_types/hybrid.py
+++ b/oauthlib/openid/connect/core/grant_types/hybrid.py
@@ -5,11 +5,13 @@ oauthlib.openid.connect.core.grant_types
"""
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 62f63f9..3ab7d5d 100644
--- a/oauthlib/openid/connect/core/grant_types/implicit.py
+++ b/oauthlib/openid/connect/core/grant_types/implicit.py
@@ -5,10 +5,12 @@ oauthlib.openid.connect.core.grant_types
"""
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 ebc07dc..7f44d69 100644
--- a/oauthlib/openid/connect/core/request_validator.py
+++ b/oauthlib/openid/connect/core/request_validator.py
@@ -5,7 +5,9 @@ oauthlib.openid.connect.core.request_validator
"""
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 ed8a958..3128e18 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 05d62fc..57d8117 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 import RequestValidator
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 6fc991a..e87f359 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 e16ea7b..879cad2 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 import RequestValidator
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 2aeb1c8..416216f 100644
--- a/tests/oauth1/rfc5849/endpoints/test_resource.py
+++ b/tests/oauth1/rfc5849/endpoints/test_resource.py
@@ -4,7 +4,7 @@ from oauthlib.oauth1 import RequestValidator
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 2ff1073..16585bd 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 import RequestValidator
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 5c805a1..f7c997f 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 3afbb3a..92b95c1 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 a3fe58f..8d34415 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 89219f7..2de4e8a 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 ba8ed0e..013c71a 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 b05786a..c1489ac 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 c545c25..c77cfed 100644
--- a/tests/oauth2/rfc6749/clients/test_base.py
+++ b/tests/oauth2/rfc6749/clients/test_base.py
@@ -6,7 +6,7 @@ from oauthlib.oauth2 import Client, InsecureTransportError, TokenExpiredError
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 1daf2a3..b5a1819 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 2fb839e..c40950c 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 6f48e23..b97d855 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 719a07d..1f711f4 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 2289b58..b1af6c3 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 69cb7ee..0659ee0 100644
--- a/tests/oauth2/rfc6749/endpoints/test_client_authentication.py
+++ b/tests/oauth2/rfc6749/endpoints/test_client_authentication.py
@@ -10,14 +10,15 @@ on the request object with a client_id parameter. The client_id attribute
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 9a76da9..32c770c 100644
--- a/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py
+++ b/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py
@@ -4,14 +4,15 @@ The Authorization Code Grant will need to preserve state as well as redirect
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 aac66df..3f53c71 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 936a129..97aaf86 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 3c67673..04df6a2 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 a01500f..681119a 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 6280cac..0453388 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 6bfba9a..a4182eb 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 0bf760b..4c87d9c 100644
--- a/tests/oauth2/rfc6749/endpoints/test_scope_handling.py
+++ b/tests/oauth2/rfc6749/endpoints/test_scope_handling.py
@@ -4,14 +4,15 @@ Fairly trivial in all grants except the Authorization Code Grant where scope
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 a9e384f..20a2416 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 0a45ef6..e9559c7 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 4a0313d..1fb71a1 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.common import Request
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 0d0fd37..1d3e77a 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 import errors
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 42f0aa6..294e27b 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 4380447..f9245ec 100644
--- a/tests/oauth2/rfc6749/test_parameters.py
+++ b/tests/oauth2/rfc6749/test_parameters.py
@@ -4,7 +4,7 @@ from oauthlib import signals
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 257280c..9688b5a 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 e6ad5cd..94af37e 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 8402133..fa6b1c0 100644
--- a/tests/oauth2/rfc6749/test_tokens.py
+++ b/tests/oauth2/rfc6749/test_tokens.py
@@ -2,14 +2,11 @@ from unittest import mock
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 cfc6c2c..3299591 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 1fe86ef..bc70269 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 unittest import mock
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 98482e2..c55136f 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 dd48bdd..4833485 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 829af92..91e24b3 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 786b24b..a88834b 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 d423915..ccbada4 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 53175df..fb61b04 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 unittest import mock
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 b914eb6..80069ac 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 import errors
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 bb3cc3c..47f0ecc 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 b0fb4b0..7f0e35b 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 13ad92f..f94f35c 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 32cd5bf..aad4538 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