1
0
mirror of https://github.com/certbot/certbot.git synced 2025-08-08 04:02:10 +03:00

Do not require mock in Python 3 in apache module (#7896)

Part of #7886.

This PR conditionally installs mock in `apache/setup.py` based on setuptools version and python version, when possible. It then updates `apache` tests to use `unittest.mock` when `mock` isn't available.

* Conditionally install mock in apache

* error out on newer python and older setuptools

* error when trying to build wheels with old setuptools

* use unittest.mock when third-party mock isn't available in apache, with no cover and type ignore
This commit is contained in:
ohemorange
2020-04-15 11:30:08 -07:00
committed by GitHub
parent 35fb99b86f
commit 8fb9a395ab
17 changed files with 72 additions and 17 deletions

View File

@@ -1,3 +1,3 @@
# Remember to update setup.py to match the package versions below. # Remember to update setup.py to match the package versions below.
acme[dev]==0.29.0 acme[dev]==0.29.0
certbot[dev]==1.1.0 certbot[dev]==1.1.0

View File

@@ -1,5 +1,7 @@
from distutils.version import StrictVersion
import sys import sys
from setuptools import __version__ as setuptools_version
from setuptools import find_packages from setuptools import find_packages
from setuptools import setup from setuptools import setup
from setuptools.command.test import test as TestCommand from setuptools.command.test import test as TestCommand
@@ -11,13 +13,21 @@ version = '1.4.0.dev0'
install_requires = [ install_requires = [
'acme>=0.29.0', 'acme>=0.29.0',
'certbot>=1.1.0', 'certbot>=1.1.0',
'mock',
'python-augeas', 'python-augeas',
'setuptools', 'setuptools',
'zope.component', 'zope.component',
'zope.interface', 'zope.interface',
] ]
setuptools_known_environment_markers = (StrictVersion(setuptools_version) >= StrictVersion('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 = [ dev_extras = [
'apacheconfig>=0.3.2', 'apacheconfig>=0.3.2',
] ]

View File

@@ -1,5 +1,8 @@
"""Tests for AugeasParserNode classes""" """Tests for AugeasParserNode classes"""
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
import os import os
import util import util

View File

@@ -3,7 +3,10 @@
import re import re
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
import six # pylint: disable=unused-import # six is used in mock.patch() import six # pylint: disable=unused-import # six is used in mock.patch()
from certbot import errors from certbot import errors

View File

@@ -1,7 +1,10 @@
"""Test for certbot_apache._internal.configurator for Centos overrides""" """Test for certbot_apache._internal.configurator for Centos overrides"""
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
from certbot import errors from certbot import errors
from certbot.compat import filesystem from certbot.compat import filesystem

View File

@@ -2,7 +2,10 @@
import shutil import shutil
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
from certbot import errors from certbot import errors
import util import util

View File

@@ -6,7 +6,10 @@ import socket
import tempfile import tempfile
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
import six # pylint: disable=unused-import # six is used in mock.patch() import six # pylint: disable=unused-import # six is used in mock.patch()
from acme import challenges from acme import challenges

View File

@@ -2,7 +2,10 @@
import shutil import shutil
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
from certbot import errors from certbot import errors
from certbot.compat import os from certbot.compat import os

View File

@@ -1,7 +1,10 @@
"""Test certbot_apache._internal.display_ops.""" """Test certbot_apache._internal.display_ops."""
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
from certbot import errors from certbot import errors
from certbot.display import util as display_util from certbot.display import util as display_util

View File

@@ -1,7 +1,10 @@
"""Tests for DualParserNode implementation""" """Tests for DualParserNode implementation"""
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
from certbot_apache._internal import assertions from certbot_apache._internal import assertions
from certbot_apache._internal import augeasparser from certbot_apache._internal import augeasparser

View File

@@ -1,7 +1,10 @@
"""Test for certbot_apache._internal.entrypoint for override class resolution""" """Test for certbot_apache._internal.entrypoint for override class resolution"""
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
from certbot_apache._internal import configurator from certbot_apache._internal import configurator
from certbot_apache._internal import entrypoint from certbot_apache._internal import entrypoint

View File

@@ -1,7 +1,10 @@
"""Test for certbot_apache._internal.configurator for Fedora 29+ overrides""" """Test for certbot_apache._internal.configurator for Fedora 29+ overrides"""
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
from certbot import errors from certbot import errors
from certbot.compat import filesystem from certbot.compat import filesystem

View File

@@ -1,7 +1,10 @@
"""Test for certbot_apache._internal.configurator for Gentoo overrides""" """Test for certbot_apache._internal.configurator for Gentoo overrides"""
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
from certbot import errors from certbot import errors
from certbot.compat import filesystem from certbot.compat import filesystem

View File

@@ -2,7 +2,10 @@
import unittest import unittest
import errno import errno
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
from acme import challenges from acme import challenges
from certbot import achallenges from certbot import achallenges

View File

@@ -2,7 +2,10 @@
import shutil import shutil
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
from certbot import errors from certbot import errors
from certbot.compat import os from certbot.compat import os

View File

@@ -1,7 +1,10 @@
"""Tests for ApacheConfigurator for AugeasParserNode classes""" """Tests for ApacheConfigurator for AugeasParserNode classes"""
import unittest import unittest
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
import util import util

View File

@@ -5,7 +5,10 @@ import unittest
import augeas import augeas
import josepy as jose import josepy as jose
import mock try:
import mock
except ImportError: # pragma: no cover
from unittest import mock # type: ignore
import zope.component import zope.component
from certbot.compat import os from certbot.compat import os