Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-acme for openSUSE:Factory checked in at 2021-03-08 15:19:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-acme (Old) and /work/SRC/openSUSE:Factory/.python-acme.new.2378 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-acme" Mon Mar 8 15:19:23 2021 rev:49 rq:877591 version:1.13.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-acme/python-acme.changes 2021-01-08 17:40:16.825024526 +0100 +++ /work/SRC/openSUSE:Factory/.python-acme.new.2378/python-acme.changes 2021-03-08 15:21:01.398104154 +0100 @@ -1,0 +2,12 @@ +Mon Mar 8 08:06:00 UTC 2021 - Mark??ta Machov?? <mmach...@suse.com> + +- update to version 1.13.0 + * Support for Python 2 has been removed. + * The acme library no longer depends on the security extras from + requests which was needed to support SNI in TLS requests when + using old versions of Python 2. + * When revoking a certificate by --cert-name, it is no longer + necessary to specify the --server if the certificate was + obtained from a non-default ACME server. + +------------------------------------------------------------------- Old: ---- acme-1.11.0.tar.gz acme-1.11.0.tar.gz.asc New: ---- acme-1.13.0.tar.gz acme-1.13.0.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-acme.spec ++++++ --- /var/tmp/diff_new_pack.FhKluz/_old 2021-03-08 15:21:02.118104682 +0100 +++ /var/tmp/diff_new_pack.FhKluz/_new 2021-03-08 15:21:02.122104685 +0100 @@ -17,9 +17,10 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} +%define skip_python2 1 %define libname acme Name: python-%{libname} -Version: 1.11.0 +Version: 1.13.0 Release: 0 Summary: Python library for the ACME protocol License: Apache-2.0 @@ -27,31 +28,24 @@ Source0: https://files.pythonhosted.org/packages/source/a/%{libname}/%{libname}-%{version}.tar.gz Source1: https://files.pythonhosted.org/packages/source/a/%{libname}/%{libname}-%{version}.tar.gz.asc Source2: %{name}.keyring -BuildRequires: %{python_module cryptography >= 1.2.3} +BuildRequires: %{python_module cryptography >= 2.1.4} BuildRequires: %{python_module josepy >= 1.1.0} -BuildRequires: %{python_module mock} -BuildRequires: %{python_module pyOpenSSL >= 0.15.1} +BuildRequires: %{python_module pyOpenSSL >= 17.3.0} BuildRequires: %{python_module pyRFC3339} BuildRequires: %{python_module pytest} BuildRequires: %{python_module pytz} BuildRequires: %{python_module requests >= 2.6.0} BuildRequires: %{python_module requests-toolbelt >= 0.3.0} BuildRequires: %{python_module setuptools} -BuildRequires: %{python_module six >= 1.9.0} -BuildRequires: %{python_module tox} BuildRequires: fdupes BuildRequires: python-rpm-macros -Requires: python-cryptography >= 1.2.3 +Requires: python-cryptography >= 2.1.4 Requires: python-josepy >= 1.1.0 -Requires: python-pyOpenSSL >= 0.15.1 +Requires: python-pyOpenSSL >= 17.3.0 Requires: python-pyRFC3339 Requires: python-pytz Requires: python-requests >= 2.6.0 Requires: python-requests-toolbelt >= 0.3.0 -Requires: python-six >= 1.9.0 -%ifpython2 -Requires: python-mock -%endif BuildArch: noarch %if %{?suse_version} < 1500 BuildRequires: %{python_module devel} ++++++ acme-1.11.0.tar.gz -> acme-1.13.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/PKG-INFO new/acme-1.13.0/PKG-INFO --- old/acme-1.11.0/PKG-INFO 2021-01-05 18:37:12.923076200 +0100 +++ new/acme-1.13.0/PKG-INFO 2021-03-02 22:37:11.656468600 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: acme -Version: 1.11.0 +Version: 1.13.0 Summary: ACME protocol implementation in Python Home-page: https://github.com/letsencrypt/letsencrypt Author: Certbot Project @@ -12,8 +12,6 @@ Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 @@ -21,6 +19,6 @@ Classifier: Programming Language :: Python :: 3.9 Classifier: Topic :: Internet :: WWW/HTTP Classifier: Topic :: Security -Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.* +Requires-Python: >=3.6 Provides-Extra: dev Provides-Extra: docs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme/__init__.py new/acme-1.13.0/acme/__init__.py --- old/acme-1.11.0/acme/__init__.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/acme/__init__.py 2021-03-02 22:37:04.000000000 +0100 @@ -6,7 +6,6 @@ """ import sys -import warnings # This code exists to keep backwards compatibility with people using acme.jose # before it became the standalone josepy package. @@ -20,10 +19,3 @@ # preserved (acme.jose.* is josepy.*) if mod == 'josepy' or mod.startswith('josepy.'): sys.modules['acme.' + mod.replace('josepy', 'jose', 1)] = sys.modules[mod] - -if sys.version_info[0] == 2: - warnings.warn( - "Python 2 support will be dropped in the next release of acme. " - "Please upgrade your Python version.", - PendingDeprecationWarning, - ) # pragma: no cover diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme/challenges.py new/acme-1.13.0/acme/challenges.py --- old/acme-1.11.0/acme/challenges.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/acme/challenges.py 2021-03-02 22:37:04.000000000 +0100 @@ -9,7 +9,6 @@ from cryptography.hazmat.primitives import hashes # type: ignore import josepy as jose import requests -import six from OpenSSL import SSL # type: ignore # https://github.com/python/typeshed/issues/2052 from OpenSSL import crypto @@ -145,12 +144,11 @@ return jobj -@six.add_metaclass(abc.ABCMeta) -class KeyAuthorizationChallenge(_TokenChallenge): +class KeyAuthorizationChallenge(_TokenChallenge, metaclass=abc.ABCMeta): """Challenge based on Key Authorization. :param response_cls: Subclass of `KeyAuthorizationChallengeResponse` - that will be used to generate `response`. + that will be used to generate ``response``. :param str typ: type of the challenge """ typ = NotImplemented diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme/client.py new/acme-1.13.0/acme/client.py --- old/acme-1.11.0/acme/client.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/acme/client.py 2021-03-02 22:37:04.000000000 +0100 @@ -4,9 +4,9 @@ import datetime from email.utils import parsedate_tz import heapq +import http.client as http_client import logging import re -import sys import time import josepy as jose @@ -15,8 +15,6 @@ from requests.adapters import HTTPAdapter from requests.utils import parse_header_links from requests_toolbelt.adapters.source import SourceAddressAdapter -import six -from six.moves import http_client from acme import crypto_util from acme import errors @@ -30,23 +28,12 @@ logger = logging.getLogger(__name__) -# Prior to Python 2.7.9 the stdlib SSL module did not allow a user to configure -# many important security related options. On these platforms we use PyOpenSSL -# for SSL, which does allow these options to be configured. -# https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning -if sys.version_info < (2, 7, 9): # pragma: no cover - try: - requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3() # type: ignore - except AttributeError: - import urllib3.contrib.pyopenssl - urllib3.contrib.pyopenssl.inject_into_urllib3() - DEFAULT_NETWORK_TIMEOUT = 45 DER_CONTENT_TYPE = 'application/pkix-cert' -class ClientBase(object): +class ClientBase: """ACME client base object. :ivar messages.Directory directory: @@ -260,7 +247,7 @@ if net is None: net = ClientNetwork(key, alg=alg, verify_ssl=verify_ssl) - if isinstance(directory, six.string_types): + if isinstance(directory, str): directory = messages.Directory.from_json( net.get(directory).json()) super(Client, self).__init__(directory=directory, @@ -475,7 +462,7 @@ exhausted.add(authzr) if exhausted or any(authzr.body.status == messages.STATUS_INVALID - for authzr in six.itervalues(updated)): + for authzr in updated.values()): raise errors.PollError(exhausted, updated) updated_authzrs = tuple(updated[authzr] for authzr in authzrs) @@ -808,7 +795,7 @@ if 'rel' in l and 'url' in l and l['rel'] == relation_type] -class BackwardsCompatibleClientV2(object): +class BackwardsCompatibleClientV2: """ACME client wrapper that tends towards V2-style calls, but supports V1 servers. @@ -951,7 +938,7 @@ return self.client.external_account_required() -class ClientNetwork(object): +class ClientNetwork: """Wrapper around requests that signs POSTs for authentication. Also adds user agent, and handles Content-Type. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme/crypto_util.py new/acme-1.13.0/acme/crypto_util.py --- old/acme-1.11.0/acme/crypto_util.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/acme/crypto_util.py 2021-03-02 22:37:04.000000000 +0100 @@ -27,7 +27,7 @@ _DEFAULT_SSL_METHOD = SSL.SSLv23_METHOD # type: ignore -class _DefaultCertSelection(object): +class _DefaultCertSelection: def __init__(self, certs): self.certs = certs @@ -36,7 +36,7 @@ return self.certs.get(server_name, None) -class SSLSocket(object): # pylint: disable=too-few-public-methods +class SSLSocket: # pylint: disable=too-few-public-methods """SSL wrapper for sockets. :ivar socket sock: Original wrapped socket. @@ -93,7 +93,7 @@ new_context.set_alpn_select_callback(self.alpn_selection) connection.set_context(new_context) - class FakeConnection(object): + class FakeConnection: """Fake OpenSSL.SSL.Connection.""" # pylint: disable=missing-function-docstring @@ -166,7 +166,7 @@ " from {0}:{1}".format( source_address[0], source_address[1] - ) if socket_kwargs else "" + ) if any(source_address) else "" ) socket_tuple = (host, port) # type: Tuple[str, int] sock = socket.create_connection(socket_tuple, **socket_kwargs) # type: ignore diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme/errors.py new/acme-1.13.0/acme/errors.py --- old/acme-1.11.0/acme/errors.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/acme/errors.py 2021-03-02 22:37:04.000000000 +0100 @@ -49,7 +49,7 @@ Replay-Nonce header field in each successful response to a POST it provides to a client (...)". - :ivar requests.Response response: HTTP Response + :ivar requests.Response ~.response: HTTP Response """ def __init__(self, response, *args, **kwargs): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme/magic_typing.py new/acme-1.13.0/acme/magic_typing.py --- old/acme-1.11.0/acme/magic_typing.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/acme/magic_typing.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,16 +1,14 @@ -"""Shim class to not have to depend on typing module in prod.""" -import sys +"""Simple shim around the typing module. +This was useful when this code supported Python 2 and typing wasn't always +available. This code is being kept for now for backwards compatibility. -class TypingClass(object): +""" +from typing import * # pylint: disable=wildcard-import, unused-wildcard-import +from typing import Collection, IO # type: ignore + + +class TypingClass: """Ignore import errors by getting anything""" def __getattr__(self, name): - return None - -try: - # mypy doesn't respect modifying sys.modules - from typing import * # pylint: disable=wildcard-import, unused-wildcard-import - from typing import Collection, IO # type: ignore -except ImportError: - # mypy complains because TypingClass is not a module - sys.modules[__name__] = TypingClass() # type: ignore + return None # pragma: no cover diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme/messages.py new/acme-1.13.0/acme/messages.py --- old/acme-1.11.0/acme/messages.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/acme/messages.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,8 +1,8 @@ """ACME protocol messages.""" import json +from collections.abc import Hashable import josepy as jose -import six from acme import challenges from acme import errors @@ -11,13 +11,6 @@ from acme import util from acme.mixins import ResourceMixin -try: - from collections.abc import Hashable -except ImportError: # pragma: no cover - from collections import Hashable - - - OLD_ERROR_PREFIX = "urn:acme:error:" ERROR_PREFIX = "urn:ietf:params:acme:error:" @@ -68,7 +61,6 @@ return False -@six.python_2_unicode_compatible class Error(jose.JSONObjectWithFields, errors.Error): """ACME error. @@ -158,9 +150,6 @@ def __hash__(self): return hash((self.__class__, self.name)) - def __ne__(self, other): - return not self == other - class Status(_Constant): """ACME "status" field.""" @@ -275,7 +264,7 @@ class ResourceWithURI(Resource): """ACME Resource with URI. - :ivar unicode uri: Location of the resource. + :ivar unicode ~.uri: Location of the resource. """ uri = jose.Field('uri') # no ChallengeResource.uri @@ -285,7 +274,7 @@ """ACME Resource Body.""" -class ExternalAccountBinding(object): +class ExternalAccountBinding: """ACME External Account Binding""" @classmethod @@ -627,7 +616,7 @@ :ivar str finalize: URL to POST to to request issuance once all authorizations have "valid" status. :ivar datetime.datetime expires: When the order expires. - :ivar .Error error: Any error that occurred during finalization, if applicable. + :ivar ~.Error error: Any error that occurred during finalization, if applicable. """ identifiers = jose.Field('identifiers', omitempty=True) status = jose.Field('status', decoder=Status.from_json, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme/mixins.py new/acme-1.13.0/acme/mixins.py --- old/acme-1.11.0/acme/mixins.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/acme/mixins.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,7 +1,7 @@ """Useful mixins for Challenge and Resource objects""" -class VersionedLEACMEMixin(object): +class VersionedLEACMEMixin: """This mixin stores the version of Let's Encrypt's endpoint being used.""" @property def le_acme_version(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme/standalone.py new/acme-1.13.0/acme/standalone.py --- old/acme-1.11.0/acme/standalone.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/acme/standalone.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,14 +1,13 @@ """Support for standalone client challenge solvers. """ import collections import functools +import http.client as http_client +import http.server as BaseHTTPServer import logging import socket +import socketserver import threading -from six.moves import BaseHTTPServer # type: ignore -from six.moves import http_client -from six.moves import socketserver # type: ignore - from acme import challenges from acme import crypto_util from acme.magic_typing import List @@ -54,7 +53,7 @@ allow_reuse_address = True -class BaseDualNetworkedServers(object): +class BaseDualNetworkedServers: """Base class for a pair of IPv6 and IPv4 servers that tries to do everything it's asked for both servers, but where failures in one server don't affect the other. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme/util.py new/acme-1.13.0/acme/util.py --- old/acme-1.11.0/acme/util.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/acme/util.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,7 +1,6 @@ """ACME utilities.""" -import six def map_keys(dikt, func): """Map dictionary keys.""" - return {func(key): value for key, value in six.iteritems(dikt)} + return {func(key): value for key, value in dikt.items()} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme.egg-info/PKG-INFO new/acme-1.13.0/acme.egg-info/PKG-INFO --- old/acme-1.11.0/acme.egg-info/PKG-INFO 2021-01-05 18:37:12.000000000 +0100 +++ new/acme-1.13.0/acme.egg-info/PKG-INFO 2021-03-02 22:37:11.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: acme -Version: 1.11.0 +Version: 1.13.0 Summary: ACME protocol implementation in Python Home-page: https://github.com/letsencrypt/letsencrypt Author: Certbot Project @@ -12,8 +12,6 @@ Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 @@ -21,6 +19,6 @@ Classifier: Programming Language :: Python :: 3.9 Classifier: Topic :: Internet :: WWW/HTTP Classifier: Topic :: Security -Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.* +Requires-Python: >=3.6 Provides-Extra: dev Provides-Extra: docs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/acme.egg-info/requires.txt new/acme-1.13.0/acme.egg-info/requires.txt --- old/acme-1.11.0/acme.egg-info/requires.txt 2021-01-05 18:37:12.000000000 +0100 +++ new/acme-1.13.0/acme.egg-info/requires.txt 2021-03-02 22:37:11.000000000 +0100 @@ -1,15 +1,11 @@ -cryptography>=1.2.3 +cryptography>=2.1.4 josepy>=1.1.0 -PyOpenSSL>=0.15.1 +PyOpenSSL>=17.3.0 pyrfc3339 pytz -requests[security]>=2.6.0 +requests>=2.6.0 requests-toolbelt>=0.3.0 -setuptools -six>=1.9.0 - -[:python_version < "3.3"] -mock +setuptools>=39.0.1 [dev] pytest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/docs/conf.py new/acme-1.13.0/docs/conf.py --- old/acme-1.11.0/docs/conf.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/docs/conf.py 2021-03-02 22:37:04.000000000 +0100 @@ -85,7 +85,9 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = [ + '_build', +] # The reST default role (used for this markup: `text`) to use for all # documents. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/docs/man/jws.rst new/acme-1.13.0/docs/man/jws.rst --- old/acme-1.11.0/docs/man/jws.rst 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/docs/man/jws.rst 2021-03-02 22:37:04.000000000 +0100 @@ -1 +1,3 @@ +:orphan: + .. literalinclude:: ../jws-help.txt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/setup.py new/acme-1.13.0/setup.py --- old/acme-1.11.0/setup.py 2021-01-05 18:37:06.000000000 +0100 +++ new/acme-1.13.0/setup.py 2021-03-02 22:37:05.000000000 +0100 @@ -1,40 +1,25 @@ -from distutils.version import LooseVersion import sys -from setuptools import __version__ as setuptools_version from setuptools import find_packages from setuptools import setup -version = '1.11.0' +version = '1.13.0' # Please update tox.ini when modifying dependency version requirements install_requires = [ - # load_pem_private/public_key (>=0.6) - # rsa_recover_prime_factors (>=0.8) - 'cryptography>=1.2.3', + 'cryptography>=2.1.4', # formerly known as acme.jose: # 1.1.0+ is required to avoid the warnings described at # https://github.com/certbot/josepy/issues/13. 'josepy>=1.1.0', - # Connection.set_tlsext_host_name (>=0.13) + matching Xenial requirements (>=0.15.1) - 'PyOpenSSL>=0.15.1', + 'PyOpenSSL>=17.3.0', 'pyrfc3339', 'pytz', - 'requests[security]>=2.6.0', # security extras added in 2.4.1 + 'requests>=2.6.0', 'requests-toolbelt>=0.3.0', - 'setuptools', - 'six>=1.9.0', # needed for python_2_unicode_compatible + 'setuptools>=39.0.1', ] -setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2')) -if setuptools_known_environment_markers: - install_requires.append('mock ; python_version < "3.3"') -elif 'bdist_wheel' in sys.argv[1:]: - raise RuntimeError('Error, you are trying to build certbot wheels using an old version ' - 'of setuptools. Version 36.2+ of setuptools is required.') -elif sys.version_info < (3,3): - install_requires.append('mock') - dev_extras = [ 'pytest', 'pytest-xdist', @@ -54,14 +39,12 @@ author="Certbot Project", author_email='client-...@letsencrypt.org', license='Apache License 2.0', - python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*', + python_requires='>=3.6', classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/tests/challenges_test.py new/acme-1.13.0/tests/challenges_test.py --- old/acme-1.11.0/tests/challenges_test.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/tests/challenges_test.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,14 +1,11 @@ """Tests for acme.challenges.""" +import urllib.parse as urllib_parse import unittest +from unittest import mock import josepy as jose import OpenSSL -try: - import mock -except ImportError: # pragma: no cover - from unittest import mock # type: ignore import requests -from six.moves.urllib import parse as urllib_parse from acme import errors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/tests/client_test.py new/acme-1.13.0/tests/client_test.py --- old/acme-1.11.0/tests/client_test.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/tests/client_test.py 2021-03-02 22:37:04.000000000 +0100 @@ -2,17 +2,14 @@ # pylint: disable=too-many-lines import copy import datetime +import http.client as http_client import json import unittest +from unittest import mock import josepy as jose -try: - import mock -except ImportError: # pragma: no cover - from unittest import mock # type: ignore import OpenSSL import requests -from six.moves import http_client # pylint: disable=import-error from acme import challenges from acme import errors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/tests/crypto_util_test.py new/acme-1.13.0/tests/crypto_util_test.py --- old/acme-1.11.0/tests/crypto_util_test.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/tests/crypto_util_test.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,14 +1,13 @@ """Tests for acme.crypto_util.""" import itertools import socket +import socketserver import threading import time import unittest import josepy as jose import OpenSSL -import six -from six.moves import socketserver # type: ignore # pylint: disable=import-error from acme import errors import test_util @@ -27,8 +26,6 @@ class _TestServer(socketserver.TCPServer): - # six.moves.* | pylint: disable=attribute-defined-outside-init,no-init - def server_bind(self): # pylint: disable=missing-docstring self.socket = SSLSocket(socket.socket(), certs) @@ -62,7 +59,6 @@ self.assertRaises(errors.Error, self._probe, b'bar') def test_probe_connection_error(self): - # pylint has a hard time with six self.server.server_close() original_timeout = socket.getdefaulttimeout() try: @@ -121,9 +117,9 @@ @classmethod def _get_idn_names(cls): """Returns expected names from '{cert,csr}-idnsans.pem'.""" - chars = [six.unichr(i) for i in itertools.chain(range(0x3c3, 0x400), - range(0x641, 0x6fc), - range(0x1820, 0x1877))] + chars = [chr(i) for i in itertools.chain(range(0x3c3, 0x400), + range(0x641, 0x6fc), + range(0x1820, 0x1877))] return [''.join(chars[i: i + 45]) + '.invalid' for i in range(0, len(chars), 45)] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/tests/errors_test.py new/acme-1.13.0/tests/errors_test.py --- old/acme-1.11.0/tests/errors_test.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/tests/errors_test.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,10 +1,6 @@ """Tests for acme.errors.""" import unittest - -try: - import mock -except ImportError: # pragma: no cover - from unittest import mock # type: ignore +from unittest import mock class BadNonceTest(unittest.TestCase): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/tests/magic_typing_test.py new/acme-1.13.0/tests/magic_typing_test.py --- old/acme-1.11.0/tests/magic_typing_test.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/tests/magic_typing_test.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,11 +1,7 @@ """Tests for acme.magic_typing.""" import sys import unittest - -try: - import mock -except ImportError: # pragma: no cover - from unittest import mock # type: ignore +from unittest import mock class MagicTypingTest(unittest.TestCase): @@ -26,19 +22,6 @@ del sys.modules['acme.magic_typing'] sys.modules['typing'] = temp_typing - def test_import_failure(self): - try: - import typing as temp_typing - except ImportError: # pragma: no cover - temp_typing = None # pragma: no cover - sys.modules['typing'] = None - if 'acme.magic_typing' in sys.modules: - del sys.modules['acme.magic_typing'] # pragma: no cover - from acme.magic_typing import Text - self.assertTrue(Text is None) - del sys.modules['acme.magic_typing'] - sys.modules['typing'] = temp_typing - if __name__ == '__main__': unittest.main() # pragma: no cover diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/tests/messages_test.py new/acme-1.13.0/tests/messages_test.py --- old/acme-1.11.0/tests/messages_test.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/tests/messages_test.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,11 +1,8 @@ """Tests for acme.messages.""" import unittest +from unittest import mock import josepy as jose -try: - import mock -except ImportError: # pragma: no cover - from unittest import mock # type: ignore from acme import challenges import test_util diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/acme-1.11.0/tests/standalone_test.py new/acme-1.13.0/tests/standalone_test.py --- old/acme-1.11.0/tests/standalone_test.py 2021-01-05 18:37:05.000000000 +0100 +++ new/acme-1.13.0/tests/standalone_test.py 2021-03-02 22:37:04.000000000 +0100 @@ -1,16 +1,13 @@ """Tests for acme.standalone.""" +import http.client as http_client import socket +import socketserver import threading import unittest +from unittest import mock import josepy as jose -try: - import mock -except ImportError: # pragma: no cover - from unittest import mock # type: ignore import requests -from six.moves import http_client # pylint: disable=import-error -from six.moves import socketserver # type: ignore # pylint: disable=import-error from acme import challenges from acme import crypto_util