diff options
Diffstat (limited to 'tests')
50 files changed, 92 insertions, 222 deletions
diff --git a/tests/oauth1/rfc5849/endpoints/test_access_token.py b/tests/oauth1/rfc5849/endpoints/test_access_token.py index 3499fdb..9ba8a3e 100644 --- a/tests/oauth1/rfc5849/endpoints/test_access_token.py +++ b/tests/oauth1/rfc5849/endpoints/test_access_token.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - from mock import ANY, MagicMock from oauthlib.oauth1 import RequestValidator diff --git a/tests/oauth1/rfc5849/endpoints/test_authorization.py b/tests/oauth1/rfc5849/endpoints/test_authorization.py index e9d3604..178bddf 100644 --- a/tests/oauth1/rfc5849/endpoints/test_authorization.py +++ b/tests/oauth1/rfc5849/endpoints/test_authorization.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - from mock import MagicMock from oauthlib.oauth1 import RequestValidator diff --git a/tests/oauth1/rfc5849/endpoints/test_base.py b/tests/oauth1/rfc5849/endpoints/test_base.py index 795ddee..de6c1a4 100644 --- a/tests/oauth1/rfc5849/endpoints/test_base.py +++ b/tests/oauth1/rfc5849/endpoints/test_base.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - from re import sub from mock import MagicMock diff --git a/tests/oauth1/rfc5849/endpoints/test_request_token.py b/tests/oauth1/rfc5849/endpoints/test_request_token.py index 5c9ae88..ece36bd 100644 --- a/tests/oauth1/rfc5849/endpoints/test_request_token.py +++ b/tests/oauth1/rfc5849/endpoints/test_request_token.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - from mock import ANY, MagicMock from oauthlib.oauth1 import RequestValidator diff --git a/tests/oauth1/rfc5849/endpoints/test_resource.py b/tests/oauth1/rfc5849/endpoints/test_resource.py index b71412a..41c9aee 100644 --- a/tests/oauth1/rfc5849/endpoints/test_resource.py +++ b/tests/oauth1/rfc5849/endpoints/test_resource.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - from mock import ANY, MagicMock from oauthlib.oauth1 import RequestValidator diff --git a/tests/oauth1/rfc5849/endpoints/test_signature_only.py b/tests/oauth1/rfc5849/endpoints/test_signature_only.py index 1d758b1..9804137 100644 --- a/tests/oauth1/rfc5849/endpoints/test_signature_only.py +++ b/tests/oauth1/rfc5849/endpoints/test_signature_only.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - from mock import ANY, MagicMock from oauthlib.oauth1 import RequestValidator diff --git a/tests/oauth1/rfc5849/test_client.py b/tests/oauth1/rfc5849/test_client.py index e1f83de..5c805a1 100644 --- a/tests/oauth1/rfc5849/test_client.py +++ b/tests/oauth1/rfc5849/test_client.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - from oauthlib.common import Request from oauthlib.oauth1 import (SIGNATURE_PLAINTEXT, SIGNATURE_HMAC_SHA1, SIGNATURE_HMAC_SHA256, SIGNATURE_RSA, @@ -163,7 +161,7 @@ class SignatureMethodTest(TestCase): Client.register_signature_method('PIZZA', lambda base_string, client: 'PIZZA') - self.assertTrue('PIZZA' in Client.SIGNATURE_METHODS) + self.assertIn('PIZZA', Client.SIGNATURE_METHODS) client = Client('client_key', signature_method='PIZZA', timestamp='1234567890', nonce='abc') diff --git a/tests/oauth1/rfc5849/test_parameters.py b/tests/oauth1/rfc5849/test_parameters.py index ae72fd7..3afbb3a 100644 --- a/tests/oauth1/rfc5849/test_parameters.py +++ b/tests/oauth1/rfc5849/test_parameters.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - from oauthlib.common import urlencode from oauthlib.oauth1.rfc5849.parameters import (_append_params, prepare_form_encoded_body, diff --git a/tests/oauth1/rfc5849/test_request_validator.py b/tests/oauth1/rfc5849/test_request_validator.py index 88bbcdc..a3fe58f 100644 --- a/tests/oauth1/rfc5849/test_request_validator.py +++ b/tests/oauth1/rfc5849/test_request_validator.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - from oauthlib.oauth1 import RequestValidator from ...unittest import TestCase diff --git a/tests/oauth1/rfc5849/test_signatures.py b/tests/oauth1/rfc5849/test_signatures.py index 5ff0989..89219f7 100644 --- a/tests/oauth1/rfc5849/test_signatures.py +++ b/tests/oauth1/rfc5849/test_signatures.py @@ -1,7 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - -from oauthlib.common import unicode_type from oauthlib.oauth1.rfc5849.signature import (collect_parameters, signature_base_string, base_string_uri, @@ -12,13 +9,10 @@ from oauthlib.oauth1.rfc5849.signature import (collect_parameters, sign_plaintext_with_client, sign_rsa_sha1, sign_rsa_sha1_with_client) +from urllib.parse import quote from ...unittest import TestCase -try: - from urllib import quote -except ImportError: - from urllib.parse import quote @@ -241,7 +235,7 @@ class SignatureTests(TestCase): normalized = normalize_parameters(parameters) # Unicode everywhere and always - self.assertIsInstance(normalized, unicode_type) + self.assertIsInstance(normalized, str) # Lets see if things are in order # check to see that querystring keys come in alphanumeric order: diff --git a/tests/oauth1/rfc5849/test_utils.py b/tests/oauth1/rfc5849/test_utils.py index 5a889e8..ba8ed0e 100644 --- a/tests/oauth1/rfc5849/test_utils.py +++ b/tests/oauth1/rfc5849/test_utils.py @@ -1,7 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - -from oauthlib.common import unicode_type from oauthlib.oauth1.rfc5849.utils import * from ...unittest import TestCase @@ -102,12 +99,12 @@ class UtilsTests(TestCase): def test_escape(self): self.assertRaises(ValueError, escape, b"I am a string type. Not a unicode type.") self.assertEqual(escape("I am a unicode type."), "I%20am%20a%20unicode%20type.") - self.assertIsInstance(escape("I am a unicode type."), unicode_type) + self.assertIsInstance(escape("I am a unicode type."), str) def test_unescape(self): self.assertRaises(ValueError, unescape, b"I am a string type. Not a unicode type.") self.assertEqual(unescape("I%20am%20a%20unicode%20type."), 'I am a unicode type.') - self.assertIsInstance(unescape("I%20am%20a%20unicode%20type."), unicode_type) + self.assertIsInstance(unescape("I%20am%20a%20unicode%20type."), str) def test_parse_authorization_header(self): # make us some headers @@ -122,8 +119,8 @@ class UtilsTests(TestCase): # are the internal components of each tuple unicode? for k, v in authorization_headers: - self.assertIsInstance(k, unicode_type) - self.assertIsInstance(v, unicode_type) + self.assertIsInstance(k, str) + self.assertIsInstance(v, str) # let's check the parsed headers created correct_headers = [ diff --git a/tests/oauth2/rfc6749/clients/test_backend_application.py b/tests/oauth2/rfc6749/clients/test_backend_application.py index aa2ba2b..8d80b39 100644 --- a/tests/oauth2/rfc6749/clients/test_backend_application.py +++ b/tests/oauth2/rfc6749/clients/test_backend_application.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import os from mock import patch diff --git a/tests/oauth2/rfc6749/clients/test_base.py b/tests/oauth2/rfc6749/clients/test_base.py index d48a944..c545c25 100644 --- a/tests/oauth2/rfc6749/clients/test_base.py +++ b/tests/oauth2/rfc6749/clients/test_base.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import datetime from oauthlib import common @@ -295,11 +293,11 @@ class ClientTest(TestCase): u, h, b = client.prepare_refresh_token_request(url, token, scope=scope) self.assertEqual(u, url) self.assertEqual(h, {'Content-Type': 'application/x-www-form-urlencoded'}) - self.assertFormBodyEqual(b, 'grant_type=refresh_token&scope=%s&refresh_token=%s' % (scope, token)) + self.assertFormBodyEqual(b, 'grant_type=refresh_token&scope={}&refresh_token={}'.format(scope, token)) # provide scope while init client = Client(self.client_id, scope=scope) u, h, b = client.prepare_refresh_token_request(url, token, scope=scope) self.assertEqual(u, url) self.assertEqual(h, {'Content-Type': 'application/x-www-form-urlencoded'}) - self.assertFormBodyEqual(b, 'grant_type=refresh_token&scope=%s&refresh_token=%s' % (scope, token)) + self.assertFormBodyEqual(b, 'grant_type=refresh_token&scope={}&refresh_token={}'.format(scope, token)) diff --git a/tests/oauth2/rfc6749/clients/test_legacy_application.py b/tests/oauth2/rfc6749/clients/test_legacy_application.py index 21af4a3..34ea108 100644 --- a/tests/oauth2/rfc6749/clients/test_legacy_application.py +++ b/tests/oauth2/rfc6749/clients/test_legacy_application.py @@ -1,20 +1,14 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import os from mock import patch from oauthlib import signals from oauthlib.oauth2 import LegacyApplicationClient +import urllib.parse as urlparse from ....unittest import TestCase -# this is the same import method used in oauthlib/oauth2/rfc6749/parameters.py -try: - import urlparse -except ImportError: - import urllib.parse as urlparse @patch('time.time', new=lambda: 1000) @@ -32,7 +26,7 @@ class LegacyApplicationClientTest(TestCase): password = "user_password" body = "not=empty" - body_up = "not=empty&grant_type=password&username=%s&password=%s" % (username, password) + body_up = "not=empty&grant_type=password&username={}&password={}".format(username, password) body_kwargs = body_up + "&some=providers&require=extra+arguments" token_json = ('{ "access_token":"2YotnFZFEjr1zCsicMWpAA",' @@ -105,8 +99,8 @@ class LegacyApplicationClientTest(TestCase): # scenario 1, default behavior to not include `client_id` r1 = client.prepare_request_body(username=self.username, password=self.password) - self.assertIn(r1, ('grant_type=password&username=%s&password=%s' % (self.username, self.password, ), - 'grant_type=password&password=%s&username=%s' % (self.password, self.username, ), + self.assertIn(r1, ('grant_type=password&username={}&password={}'.format(self.username, self.password), + 'grant_type=password&password={}&username={}'.format(self.password, self.username), )) # scenario 2, include `client_id` in the body diff --git a/tests/oauth2/rfc6749/clients/test_mobile_application.py b/tests/oauth2/rfc6749/clients/test_mobile_application.py index 622b275..e2bdebe 100644 --- a/tests/oauth2/rfc6749/clients/test_mobile_application.py +++ b/tests/oauth2/rfc6749/clients/test_mobile_application.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import os from mock import patch diff --git a/tests/oauth2/rfc6749/clients/test_service_application.py b/tests/oauth2/rfc6749/clients/test_service_application.py index dc337cf..ba9406b 100644 --- a/tests/oauth2/rfc6749/clients/test_service_application.py +++ b/tests/oauth2/rfc6749/clients/test_service_application.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import os from time import time diff --git a/tests/oauth2/rfc6749/clients/test_web_application.py b/tests/oauth2/rfc6749/clients/test_web_application.py index 092f93e..e3382c8 100644 --- a/tests/oauth2/rfc6749/clients/test_web_application.py +++ b/tests/oauth2/rfc6749/clients/test_web_application.py @@ -1,7 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - -import datetime import os import warnings @@ -13,14 +10,10 @@ from oauthlib.oauth2 import (BackendApplicationClient, Client, 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 -# this is the same import method used in oauthlib/oauth2/rfc6749/parameters.py -try: - import urlparse -except ImportError: - import urllib.parse as urlparse @patch('time.time', new=lambda: 1000) @@ -46,7 +39,7 @@ class WebApplicationClientTest(TestCase): code = "zzzzaaaa" body = "not=empty" - body_code = "not=empty&grant_type=authorization_code&code=%s&client_id=%s" % (code, client_id) + body_code = "not=empty&grant_type=authorization_code&code={}&client_id={}".format(code, client_id) body_redirect = body_code + "&redirect_uri=http%3A%2F%2Fmy.page.com%2Fcallback" body_kwargs = body_code + "&some=providers&require=extra+arguments" diff --git a/tests/oauth2/rfc6749/endpoints/test_base_endpoint.py b/tests/oauth2/rfc6749/endpoints/test_base_endpoint.py index bf04a42..2289b58 100644 --- a/tests/oauth2/rfc6749/endpoints/test_base_endpoint.py +++ b/tests/oauth2/rfc6749/endpoints/test_base_endpoint.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - from oauthlib.oauth2 import (FatalClientError, OAuth2Error, RequestValidator, Server) from oauthlib.oauth2.rfc6749 import (BaseEndpoint, diff --git a/tests/oauth2/rfc6749/endpoints/test_client_authentication.py b/tests/oauth2/rfc6749/endpoints/test_client_authentication.py index 133da59..48b5485 100644 --- a/tests/oauth2/rfc6749/endpoints/test_client_authentication.py +++ b/tests/oauth2/rfc6749/endpoints/test_client_authentication.py @@ -9,8 +9,6 @@ We make sure authentication is done by requiring a client object to be set on the request object with a client_id parameter. The client_id attribute prevents this check from being circumvented with a client form parameter. """ -from __future__ import absolute_import, unicode_literals - import json import mock diff --git a/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py b/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py index e7c66b6..bda71f7 100644 --- a/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py +++ b/tests/oauth2/rfc6749/endpoints/test_credentials_preservation.py @@ -3,8 +3,6 @@ The Authorization Code Grant will need to preserve state as well as redirect uri and the Implicit Grant will need to preserve state. """ -from __future__ import absolute_import, unicode_literals - import json import mock diff --git a/tests/oauth2/rfc6749/endpoints/test_error_responses.py b/tests/oauth2/rfc6749/endpoints/test_error_responses.py index 2479836..cdf2b63 100644 --- a/tests/oauth2/rfc6749/endpoints/test_error_responses.py +++ b/tests/oauth2/rfc6749/endpoints/test_error_responses.py @@ -1,7 +1,5 @@ """Ensure the correct error responses are returned for all defined error types. """ -from __future__ import absolute_import, unicode_literals - import json import mock diff --git a/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py b/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py index a12fcd2..6895dcd 100644 --- a/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py +++ b/tests/oauth2/rfc6749/endpoints/test_extra_credentials.py @@ -1,7 +1,5 @@ """Ensure extra credentials can be supplied for inclusion in tokens. """ -from __future__ import absolute_import, unicode_literals - import mock from oauthlib.oauth2 import (BackendApplicationServer, LegacyApplicationServer, diff --git a/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py b/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py index ae3deae..0942d96 100644 --- a/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py +++ b/tests/oauth2/rfc6749/endpoints/test_introspect_endpoint.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - from json import loads from mock import MagicMock diff --git a/tests/oauth2/rfc6749/endpoints/test_metadata.py b/tests/oauth2/rfc6749/endpoints/test_metadata.py index 4813b46..a01500f 100644 --- a/tests/oauth2/rfc6749/endpoints/test_metadata.py +++ b/tests/oauth2/rfc6749/endpoints/test_metadata.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - from oauthlib.oauth2 import MetadataEndpoint from oauthlib.oauth2 import TokenEndpoint from oauthlib.oauth2 import Server diff --git a/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py b/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py index e823286..9e9d836 100644 --- a/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py +++ b/tests/oauth2/rfc6749/endpoints/test_resource_owner_association.py @@ -1,7 +1,5 @@ """Ensure all tokens are associated with a resource owner. """ -from __future__ import absolute_import, unicode_literals - import json import mock diff --git a/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py b/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py index 17be3a5..0e3b2e1 100644 --- a/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py +++ b/tests/oauth2/rfc6749/endpoints/test_revocation_endpoint.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - from json import loads from mock import MagicMock diff --git a/tests/oauth2/rfc6749/endpoints/test_scope_handling.py b/tests/oauth2/rfc6749/endpoints/test_scope_handling.py index 4f27963..65e0e3c 100644 --- a/tests/oauth2/rfc6749/endpoints/test_scope_handling.py +++ b/tests/oauth2/rfc6749/endpoints/test_scope_handling.py @@ -3,8 +3,6 @@ Fairly trivial in all grants except the Authorization Code Grant where scope need to be persisted temporarily in an authorization code. """ -from __future__ import absolute_import, unicode_literals - import json import mock @@ -65,13 +63,13 @@ class TestScopeHandling(TestCase): for scope, correct_scopes in scopes: scopes, _ = self.web.validate_authorization_request( uri % (scope, 'code')) - self.assertItemsEqual(scopes, correct_scopes) + self.assertCountEqual(scopes, correct_scopes) scopes, _ = self.mobile.validate_authorization_request( uri % (scope, 'token')) - self.assertItemsEqual(scopes, correct_scopes) + self.assertCountEqual(scopes, correct_scopes) scopes, _ = self.server.validate_authorization_request( uri % (scope, 'code')) - self.assertItemsEqual(scopes, correct_scopes) + self.assertCountEqual(scopes, correct_scopes) def test_scope_preservation(self): scope = 'pics+http%3A%2f%2fa.b%2fvideos' diff --git a/tests/oauth2/rfc6749/endpoints/test_utils.py b/tests/oauth2/rfc6749/endpoints/test_utils.py index 6b7cff8..5eae195 100644 --- a/tests/oauth2/rfc6749/endpoints/test_utils.py +++ b/tests/oauth2/rfc6749/endpoints/test_utils.py @@ -1,7 +1,4 @@ -try: - import urlparse -except ImportError: - import urllib.parse as urlparse +import urllib.parse as urlparse def get_query_credentials(uri): diff --git a/tests/oauth2/rfc6749/grant_types/test_authorization_code.py b/tests/oauth2/rfc6749/grant_types/test_authorization_code.py index 2c9db3c..4ed9086 100644 --- a/tests/oauth2/rfc6749/grant_types/test_authorization_code.py +++ b/tests/oauth2/rfc6749/grant_types/test_authorization_code.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import json import mock diff --git a/tests/oauth2/rfc6749/grant_types/test_client_credentials.py b/tests/oauth2/rfc6749/grant_types/test_client_credentials.py index edc6bfe..d994278 100644 --- a/tests/oauth2/rfc6749/grant_types/test_client_credentials.py +++ b/tests/oauth2/rfc6749/grant_types/test_client_credentials.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import json import mock diff --git a/tests/oauth2/rfc6749/grant_types/test_implicit.py b/tests/oauth2/rfc6749/grant_types/test_implicit.py index 0c18cab..ffd766a 100644 --- a/tests/oauth2/rfc6749/grant_types/test_implicit.py +++ b/tests/oauth2/rfc6749/grant_types/test_implicit.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import mock from oauthlib.common import Request diff --git a/tests/oauth2/rfc6749/grant_types/test_refresh_token.py b/tests/oauth2/rfc6749/grant_types/test_refresh_token.py index 32a0977..074f359 100644 --- a/tests/oauth2/rfc6749/grant_types/test_refresh_token.py +++ b/tests/oauth2/rfc6749/grant_types/test_refresh_token.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import json import mock 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 82e0524..4e93015 100644 --- a/tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py +++ b/tests/oauth2/rfc6749/grant_types/test_resource_owner_password.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import json import mock diff --git a/tests/oauth2/rfc6749/test_parameters.py b/tests/oauth2/rfc6749/test_parameters.py index 48b7eac..e9b3621 100644 --- a/tests/oauth2/rfc6749/test_parameters.py +++ b/tests/oauth2/rfc6749/test_parameters.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - from mock import patch from oauthlib import signals @@ -77,9 +75,9 @@ class ParameterTests(TestCase): error_invalid = 'https://client.example.com/cb?error=invalid_request&state=xyz' implicit_base = 'https://example.com/cb#access_token=2YotnFZFEjr1zCsicMWpAA&scope=abc&' - implicit_response = implicit_base + 'state={0}&token_type=example&expires_in=3600'.format(state) - implicit_notype = implicit_base + 'state={0}&expires_in=3600'.format(state) - implicit_wrongstate = implicit_base + 'state={0}&token_type=exampleexpires_in=3600'.format('invalid') + implicit_response = implicit_base + 'state={}&token_type=example&expires_in=3600'.format(state) + implicit_notype = implicit_base + 'state={}&expires_in=3600'.format(state) + implicit_wrongstate = implicit_base + 'state={}&token_type=exampleexpires_in=3600'.format('invalid') implicit_nostate = implicit_base + 'token_type=example&expires_in=3600' implicit_notoken = 'https://example.com/cb#state=xyz&token_type=example&expires_in=3600' @@ -244,7 +242,7 @@ class ParameterTests(TestCase): for scope in new + old: self.assertIn(scope, message) self.assertEqual(old, ['aaa']) - self.assertEqual(set(new), set(['abc', 'def'])) + self.assertEqual(set(new), {'abc', 'def'}) finally: signals.scope_changed.disconnect(record_scope_change) del os.environ['OAUTHLIB_RELAX_TOKEN_SCOPE'] @@ -278,7 +276,7 @@ class ParameterTests(TestCase): for scope in new + old: self.assertIn(scope, message) self.assertEqual(old, ['aaa']) - self.assertEqual(set(new), set(['abc', 'def'])) + self.assertEqual(set(new), {'abc', 'def'}) finally: signals.scope_changed.disconnect(record_scope_change) del os.environ['OAUTHLIB_RELAX_TOKEN_SCOPE'] diff --git a/tests/oauth2/rfc6749/test_request_validator.py b/tests/oauth2/rfc6749/test_request_validator.py index 9dde814..257280c 100644 --- a/tests/oauth2/rfc6749/test_request_validator.py +++ b/tests/oauth2/rfc6749/test_request_validator.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - from oauthlib.oauth2 import RequestValidator from ...unittest import TestCase diff --git a/tests/oauth2/rfc6749/test_server.py b/tests/oauth2/rfc6749/test_server.py index 2c6ecff..9288e49 100644 --- a/tests/oauth2/rfc6749/test_server.py +++ b/tests/oauth2/rfc6749/test_server.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import json import mock @@ -73,7 +71,7 @@ class AuthorizationEndpointTest(TestCase): uri, scopes=['all', 'of', 'them']) self.assertIn('Location', headers) self.assertURLEqual(headers['Location'], 'http://back.to/me?state=xyz', parse_fragment=True) - self.assertEqual(body, None) + self.assertIsNone(body) self.assertEqual(status_code, 302) # and without the state parameter @@ -83,7 +81,7 @@ class AuthorizationEndpointTest(TestCase): uri, scopes=['all', 'of', 'them']) self.assertIn('Location', headers) self.assertURLEqual(headers['Location'], 'http://back.to/me', parse_fragment=True) - self.assertEqual(body, None) + self.assertIsNone(body) self.assertEqual(status_code, 302) def test_missing_type(self): diff --git a/tests/oauth2/rfc6749/test_tokens.py b/tests/oauth2/rfc6749/test_tokens.py index e6f49b1..61a23cb 100644 --- a/tests/oauth2/rfc6749/test_tokens.py +++ b/tests/oauth2/rfc6749/test_tokens.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - import mock from oauthlib.common import Request diff --git a/tests/oauth2/rfc6749/test_utils.py b/tests/oauth2/rfc6749/test_utils.py index 609162c..cfc6c2c 100644 --- a/tests/oauth2/rfc6749/test_utils.py +++ b/tests/oauth2/rfc6749/test_utils.py @@ -1,9 +1,6 @@ -from __future__ import absolute_import, unicode_literals - import datetime import os -from oauthlib.common import PY3 from oauthlib.oauth2.rfc6749.utils import (escape, generate_age, host_from_uri, is_secure_transport, list_to_scope, params_from_uri, scope_to_list) @@ -19,12 +16,8 @@ class ScopeObject: def __init__(self, scope): self.scope = scope - if PY3: - def __str__(self): - return self.scope - else: - def __unicode__(self): - return self.scope + def __str__(self): + return self.scope class UtilsTests(TestCase): diff --git a/tests/openid/connect/core/endpoints/test_claims_handling.py b/tests/openid/connect/core/endpoints/test_claims_handling.py index 5f39d96..943210c 100644 --- a/tests/openid/connect/core/endpoints/test_claims_handling.py +++ b/tests/openid/connect/core/endpoints/test_claims_handling.py @@ -6,8 +6,6 @@ The claims parameter is an optional query param for the Authorization Request en request the claims should be transferred (via the oauthlib request) to be persisted with the Access Token when it is created. """ -from __future__ import absolute_import, unicode_literals - import mock from oauthlib.openid import RequestValidator 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 517239a..26ff46b 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,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - import mock from oauthlib.oauth2 import InvalidRequestError @@ -7,14 +5,10 @@ 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 -try: - from urllib.parse import urlencode -except ImportError: - from urllib import urlencode - class OpenIDConnectEndpointTest(TestCase): @@ -53,7 +47,7 @@ class OpenIDConnectEndpointTest(TestCase): credentials=creds) expected = 'https://a.b/cb?state=abc&code=MOCK_CODE' self.assertURLEqual(h['Location'], expected) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) def test_prompt_none_exclusiveness(self): diff --git a/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py b/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py index 4593d79..9edc970 100644 --- a/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py +++ b/tests/openid/connect/core/endpoints/test_userinfo_endpoint.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import mock import json 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 b721a19..b6bb99c 100644 --- a/tests/openid/connect/core/grant_types/test_authorization_code.py +++ b/tests/openid/connect/core/grant_types/test_authorization_code.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import json import mock @@ -24,7 +22,7 @@ class OpenIDAuthCodeInterferenceTest(AuthorizationCodeGrantTest): """Test that OpenID don't interfere with normal OAuth 2 flows.""" def setUp(self): - super(OpenIDAuthCodeInterferenceTest, self).setUp() + super().setUp() self.auth = AuthorizationCodeGrant(request_validator=self.mock_validator) @@ -66,13 +64,13 @@ class OpenIDAuthCodeTest(TestCase): self.request.response_mode = 'query' h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertURLEqual(h['Location'], self.url_query) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) self.request.response_mode = 'fragment' h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertURLEqual(h['Location'], self.url_fragment, parse_fragment=True) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) @mock.patch('oauthlib.common.generate_token') @@ -90,7 +88,7 @@ class OpenIDAuthCodeTest(TestCase): self.request.id_token_hint = 'me@email.com' h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertURLEqual(h['Location'], self.url_query) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) # Test alernative response modes @@ -159,5 +157,5 @@ class OpenIDAuthCodeTest(TestCase): self.request.response_mode = 'query' h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertURLEqual(h['Location'], self.url_query) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) diff --git a/tests/openid/connect/core/grant_types/test_dispatchers.py b/tests/openid/connect/core/grant_types/test_dispatchers.py index 9e45d65..2fc4ae6 100644 --- a/tests/openid/connect/core/grant_types/test_dispatchers.py +++ b/tests/openid/connect/core/grant_types/test_dispatchers.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals import mock from oauthlib.common import Request @@ -72,7 +71,7 @@ class DispatcherTest(TestCase): class AuthTokenGrantDispatcherOpenIdTest(DispatcherTest): def setUp(self): - super(AuthTokenGrantDispatcherOpenIdTest, self).setUp() + super().setUp() self.request_validator.get_authorization_code_scopes.return_value = ('hello', 'openid') self.dispatcher = AuthorizationTokenGrantDispatcher( self.request_validator, @@ -89,7 +88,7 @@ class AuthTokenGrantDispatcherOpenIdTest(DispatcherTest): class AuthTokenGrantDispatcherOpenIdWithoutCodeTest(DispatcherTest): def setUp(self): - super(AuthTokenGrantDispatcherOpenIdWithoutCodeTest, self).setUp() + super().setUp() self.request.decoded_body = ( ("client_id", "me"), ("code", ""), @@ -111,7 +110,7 @@ class AuthTokenGrantDispatcherOpenIdWithoutCodeTest(DispatcherTest): class AuthTokenGrantDispatcherOAuthTest(DispatcherTest): def setUp(self): - super(AuthTokenGrantDispatcherOAuthTest, self).setUp() + super().setUp() self.request_validator.get_authorization_code_scopes.return_value = ('hello', 'world') self.dispatcher = AuthorizationTokenGrantDispatcher( self.request_validator, diff --git a/tests/openid/connect/core/grant_types/test_hybrid.py b/tests/openid/connect/core/grant_types/test_hybrid.py index 0aa0add..3347031 100644 --- a/tests/openid/connect/core/grant_types/test_hybrid.py +++ b/tests/openid/connect/core/grant_types/test_hybrid.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import mock from oauthlib.oauth2.rfc6749 import errors @@ -15,14 +13,14 @@ class OpenIDHybridInterferenceTest(AuthorizationCodeGrantTest): """Test that OpenID don't interfere with normal OAuth 2 flows.""" def setUp(self): - super(OpenIDHybridInterferenceTest, self).setUp() + super().setUp() self.auth = HybridGrant(request_validator=self.mock_validator) class OpenIDHybridCodeTokenTest(OpenIDAuthCodeTest): def setUp(self): - super(OpenIDHybridCodeTokenTest, self).setUp() + super().setUp() self.request.response_type = 'code token' self.request.nonce = None self.auth = HybridGrant(request_validator=self.mock_validator) @@ -38,14 +36,14 @@ class OpenIDHybridCodeTokenTest(OpenIDAuthCodeTest): bearer = BearerToken(self.mock_validator) h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertURLEqual(h['Location'], self.url_fragment, parse_fragment=True) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) class OpenIDHybridCodeIdTokenTest(OpenIDAuthCodeTest): def setUp(self): - super(OpenIDHybridCodeIdTokenTest, self).setUp() + super().setUp() self.mock_validator.get_code_challenge.return_value = None self.request.response_type = 'code id_token' self.request.nonce = 'zxc' @@ -63,14 +61,14 @@ class OpenIDHybridCodeIdTokenTest(OpenIDAuthCodeTest): bearer = BearerToken(self.mock_validator) h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertIn('error=invalid_request', h['Location']) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) class OpenIDHybridCodeIdTokenTokenTest(OpenIDAuthCodeTest): def setUp(self): - super(OpenIDHybridCodeIdTokenTokenTest, self).setUp() + super().setUp() self.mock_validator.get_code_challenge.return_value = None self.request.response_type = 'code id_token token' self.request.nonce = 'xyz' @@ -88,5 +86,5 @@ class OpenIDHybridCodeIdTokenTokenTest(OpenIDAuthCodeTest): bearer = BearerToken(self.mock_validator) h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertIn('error=invalid_request', h['Location']) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) diff --git a/tests/openid/connect/core/grant_types/test_implicit.py b/tests/openid/connect/core/grant_types/test_implicit.py index 1ee805c..c8fefd4 100644 --- a/tests/openid/connect/core/grant_types/test_implicit.py +++ b/tests/openid/connect/core/grant_types/test_implicit.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import mock from oauthlib.common import Request @@ -17,7 +15,7 @@ class OpenIDImplicitInterferenceTest(ImplicitGrantTest): """Test that OpenID don't interfere with normal OAuth 2 flows.""" def setUp(self): - super(OpenIDImplicitInterferenceTest, self).setUp() + super().setUp() self.auth = ImplicitGrant(request_validator=self.mock_validator) @@ -50,7 +48,7 @@ class OpenIDImplicitTest(TestCase): h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertURLEqual(h['Location'], self.url_fragment, parse_fragment=True) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) self.request.response_type = 'id_token' @@ -58,7 +56,7 @@ class OpenIDImplicitTest(TestCase): url = 'https://a.b/cb#state=abc&id_token=%s' % token h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertURLEqual(h['Location'], url, parse_fragment=True) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) @mock.patch('oauthlib.common.generate_token') @@ -74,7 +72,7 @@ class OpenIDImplicitTest(TestCase): self.request.id_token_hint = 'me@email.com' h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertURLEqual(h['Location'], self.url_fragment, parse_fragment=True) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) # Test alernative response modes @@ -108,13 +106,13 @@ class OpenIDImplicitTest(TestCase): bearer = BearerToken(self.mock_validator) h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertIn('error=invalid_request', h['Location']) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) class OpenIDImplicitNoAccessTokenTest(OpenIDImplicitTest): def setUp(self): - super(OpenIDImplicitNoAccessTokenTest, self).setUp() + super().setUp() self.request.response_type = 'id_token' token = 'MOCKED_TOKEN' self.url_query = 'https://a.b/cb?state=abc&id_token=%s' % token @@ -129,5 +127,5 @@ class OpenIDImplicitNoAccessTokenTest(OpenIDImplicitTest): bearer = BearerToken(self.mock_validator) h, b, s = self.auth.create_authorization_response(self.request, bearer) self.assertIn('error=invalid_request', h['Location']) - self.assertEqual(b, None) + self.assertIsNone(b) self.assertEqual(s, 302) diff --git a/tests/openid/connect/core/test_request_validator.py b/tests/openid/connect/core/test_request_validator.py index ebe0aeb..6a800d4 100644 --- a/tests/openid/connect/core/test_request_validator.py +++ b/tests/openid/connect/core/test_request_validator.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - from oauthlib.openid import RequestValidator from tests.unittest import TestCase diff --git a/tests/openid/connect/core/test_server.py b/tests/openid/connect/core/test_server.py index 756c9d0..681748f 100644 --- a/tests/openid/connect/core/test_server.py +++ b/tests/openid/connect/core/test_server.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import json import mock @@ -78,7 +76,7 @@ class AuthorizationEndpointTest(TestCase): uri, scopes=['all', 'of', 'them']) self.assertIn('Location', headers) self.assertURLEqual(headers['Location'], 'http://back.to/me?state=xyz', parse_fragment=True) - self.assertEqual(body, None) + self.assertIsNone(body) self.assertEqual(status_code, 302) # and without the state parameter @@ -88,7 +86,7 @@ class AuthorizationEndpointTest(TestCase): uri, scopes=['all', 'of', 'them']) self.assertIn('Location', headers) self.assertURLEqual(headers['Location'], 'http://back.to/me', parse_fragment=True) - self.assertEqual(body, None) + self.assertIsNone(body) self.assertEqual(status_code, 302) def test_missing_type(self): diff --git a/tests/openid/connect/core/test_tokens.py b/tests/openid/connect/core/test_tokens.py index fde89d6..f1a6688 100644 --- a/tests/openid/connect/core/test_tokens.py +++ b/tests/openid/connect/core/test_tokens.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - import mock from oauthlib.openid.connect.core.tokens import JWTToken diff --git a/tests/test_common.py b/tests/test_common.py index ae2531b..b0fb4b0 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from __future__ import absolute_import, unicode_literals - import os import sys @@ -8,7 +6,7 @@ import oauthlib from oauthlib.common import (CaseInsensitiveDict, Request, add_params_to_uri, extract_params, generate_client_id, generate_nonce, generate_timestamp, - generate_token, unicode_type, urldecode) + generate_token, urldecode) from .unittest import TestCase @@ -21,23 +19,23 @@ URI = 'http://www.someuri.com' class EncodingTest(TestCase): def test_urldecode(self): - self.assertItemsEqual(urldecode(''), []) - self.assertItemsEqual(urldecode('='), [('', '')]) - self.assertItemsEqual(urldecode('%20'), [(' ', '')]) - self.assertItemsEqual(urldecode('+'), [(' ', '')]) - self.assertItemsEqual(urldecode('c2'), [('c2', '')]) - self.assertItemsEqual(urldecode('c2='), [('c2', '')]) - self.assertItemsEqual(urldecode('foo=bar'), [('foo', 'bar')]) - self.assertItemsEqual(urldecode('foo_%20~=.bar-'), + self.assertCountEqual(urldecode(''), []) + self.assertCountEqual(urldecode('='), [('', '')]) + self.assertCountEqual(urldecode('%20'), [(' ', '')]) + self.assertCountEqual(urldecode('+'), [(' ', '')]) + self.assertCountEqual(urldecode('c2'), [('c2', '')]) + self.assertCountEqual(urldecode('c2='), [('c2', '')]) + self.assertCountEqual(urldecode('foo=bar'), [('foo', 'bar')]) + self.assertCountEqual(urldecode('foo_%20~=.bar-'), [('foo_ ~', '.bar-')]) - self.assertItemsEqual(urldecode('foo=1,2,3'), [('foo', '1,2,3')]) - self.assertItemsEqual(urldecode('foo=(1,2,3)'), [('foo', '(1,2,3)')]) - self.assertItemsEqual(urldecode('foo=bar.*'), [('foo', 'bar.*')]) - self.assertItemsEqual(urldecode('foo=bar@spam'), [('foo', 'bar@spam')]) - self.assertItemsEqual(urldecode('foo=bar/baz'), [('foo', 'bar/baz')]) - self.assertItemsEqual(urldecode('foo=bar?baz'), [('foo', 'bar?baz')]) - self.assertItemsEqual(urldecode('foo=bar\'s'), [('foo', 'bar\'s')]) - self.assertItemsEqual(urldecode('foo=$'), [('foo', '$')]) + self.assertCountEqual(urldecode('foo=1,2,3'), [('foo', '1,2,3')]) + self.assertCountEqual(urldecode('foo=(1,2,3)'), [('foo', '(1,2,3)')]) + self.assertCountEqual(urldecode('foo=bar.*'), [('foo', 'bar.*')]) + self.assertCountEqual(urldecode('foo=bar@spam'), [('foo', 'bar@spam')]) + self.assertCountEqual(urldecode('foo=bar/baz'), [('foo', 'bar/baz')]) + self.assertCountEqual(urldecode('foo=bar?baz'), [('foo', 'bar?baz')]) + self.assertCountEqual(urldecode('foo=bar\'s'), [('foo', 'bar\'s')]) + self.assertCountEqual(urldecode('foo=$'), [('foo', '$')]) self.assertRaises(ValueError, urldecode, 'foo bar') self.assertRaises(ValueError, urldecode, '%R') self.assertRaises(ValueError, urldecode, '%RA') @@ -48,30 +46,30 @@ class EncodingTest(TestCase): class ParameterTest(TestCase): def test_extract_params_dict(self): - self.assertItemsEqual(extract_params(PARAMS_DICT), PARAMS_TWOTUPLE) + self.assertCountEqual(extract_params(PARAMS_DICT), PARAMS_TWOTUPLE) def test_extract_params_twotuple(self): - self.assertItemsEqual(extract_params(PARAMS_TWOTUPLE), PARAMS_TWOTUPLE) + self.assertCountEqual(extract_params(PARAMS_TWOTUPLE), PARAMS_TWOTUPLE) def test_extract_params_formencoded(self): - self.assertItemsEqual(extract_params(PARAMS_FORMENCODED), + self.assertCountEqual(extract_params(PARAMS_FORMENCODED), PARAMS_TWOTUPLE) def test_extract_params_blank_string(self): - self.assertItemsEqual(extract_params(''), []) + self.assertCountEqual(extract_params(''), []) def test_extract_params_empty_list(self): - self.assertItemsEqual(extract_params([]), []) + self.assertCountEqual(extract_params([]), []) def test_extract_non_formencoded_string(self): - self.assertEqual(extract_params('not a formencoded string'), None) + self.assertIsNone(extract_params('not a formencoded string')) def test_extract_invalid(self): - self.assertEqual(extract_params(object()), None) - self.assertEqual(extract_params([('')]), None) + self.assertIsNone(extract_params(object())) + self.assertIsNone(extract_params([('')])) def test_add_params_to_uri(self): - correct = '%s?%s' % (URI, PARAMS_FORMENCODED) + correct = '{}?{}'.format(URI, PARAMS_FORMENCODED) self.assertURLEqual(add_params_to_uri(URI, PARAMS_DICT), correct) self.assertURLEqual(add_params_to_uri(URI, PARAMS_TWOTUPLE), correct) @@ -80,7 +78,7 @@ class GeneratorTest(TestCase): def test_generate_timestamp(self): timestamp = generate_timestamp() - self.assertIsInstance(timestamp, unicode_type) + self.assertIsInstance(timestamp, str) self.assertTrue(int(timestamp)) self.assertGreater(int(timestamp), 1331672335) @@ -134,7 +132,7 @@ class RequestTest(TestCase): def test_none_body(self): r = Request(URI) - self.assertEqual(r.decoded_body, None) + self.assertIsNone(r.decoded_body) def test_empty_list_body(self): r = Request(URI, body=[]) @@ -151,20 +149,20 @@ class RequestTest(TestCase): def test_non_formencoded_string_body(self): body = 'foo bar' r = Request(URI, body=body) - self.assertEqual(r.decoded_body, None) + self.assertIsNone(r.decoded_body) def test_param_free_sequence_body(self): body = [1, 1, 2, 3, 5, 8, 13] r = Request(URI, body=body) - self.assertEqual(r.decoded_body, None) + self.assertIsNone(r.decoded_body) def test_list_body(self): r = Request(URI, body=PARAMS_TWOTUPLE) - self.assertItemsEqual(r.decoded_body, PARAMS_TWOTUPLE) + self.assertCountEqual(r.decoded_body, PARAMS_TWOTUPLE) def test_dict_body(self): r = Request(URI, body=PARAMS_DICT) - self.assertItemsEqual(r.decoded_body, PARAMS_TWOTUPLE) + self.assertCountEqual(r.decoded_body, PARAMS_TWOTUPLE) def test_getattr_existing_attribute(self): r = Request(URI, body='foo bar') diff --git a/tests/unittest/__init__.py b/tests/unittest/__init__.py index 6cb79a6..13ad92f 100644 --- a/tests/unittest/__init__.py +++ b/tests/unittest/__init__.py @@ -1,18 +1,8 @@ -import collections -import sys from unittest import TestCase -try: - import urlparse -except ImportError: - import urllib.parse as urlparse +import urllib.parse as urlparse -# Somewhat consistent itemsequal between all python versions -if sys.version_info[0] == 3: - TestCase.assertItemsEqual = TestCase.assertCountEqual - - -# URL comparison where query param order is insignifcant +# URL comparison where query param order is insignificant def url_equals(self, a, b, parse_fragment=False): parsed_a = urlparse.urlparse(a, allow_fragments=parse_fragment) parsed_b = urlparse.urlparse(b, allow_fragments=parse_fragment) @@ -21,7 +11,7 @@ def url_equals(self, a, b, parse_fragment=False): if parse_fragment: fragment_a = urlparse.parse_qsl(parsed_a.fragment) fragment_b = urlparse.parse_qsl(parsed_b.fragment) - self.assertItemsEqual(fragment_a, fragment_b) + self.assertCountEqual(fragment_a, fragment_b) else: self.assertEqual(parsed_a.fragment, parsed_b.fragment) self.assertEqual(parsed_a.scheme, parsed_b.scheme) @@ -32,10 +22,11 @@ def url_equals(self, a, b, parse_fragment=False): self.assertEqual(parsed_a.password, parsed_b.password) self.assertEqual(parsed_a.hostname, parsed_b.hostname) self.assertEqual(parsed_a.port, parsed_b.port) - self.assertItemsEqual(query_a, query_b) + self.assertCountEqual(query_a, query_b) + TestCase.assertURLEqual = url_equals # Form body comparison where order is insignificant -TestCase.assertFormBodyEqual = lambda self, a, b: self.assertItemsEqual( +TestCase.assertFormBodyEqual = lambda self, a, b: self.assertCountEqual( urlparse.parse_qsl(a), urlparse.parse_qsl(b)) |