mirror of
https://github.com/certbot/certbot.git
synced 2026-01-26 07:41:33 +03:00
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
96 lines
3.0 KiB
Python
96 lines
3.0 KiB
Python
from distutils.version import StrictVersion
|
|
import sys
|
|
|
|
from setuptools import __version__ as setuptools_version
|
|
from setuptools import find_packages
|
|
from setuptools import setup
|
|
from setuptools.command.test import test as TestCommand
|
|
|
|
version = '1.4.0.dev0'
|
|
|
|
# Remember to update local-oldest-requirements.txt when changing the minimum
|
|
# acme/certbot version.
|
|
install_requires = [
|
|
'acme>=0.29.0',
|
|
'certbot>=1.1.0',
|
|
'python-augeas',
|
|
'setuptools',
|
|
'zope.component',
|
|
'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 = [
|
|
'apacheconfig>=0.3.2',
|
|
]
|
|
|
|
class PyTest(TestCommand):
|
|
user_options = []
|
|
|
|
def initialize_options(self):
|
|
TestCommand.initialize_options(self)
|
|
self.pytest_args = ''
|
|
|
|
def run_tests(self):
|
|
import shlex
|
|
# import here, cause outside the eggs aren't loaded
|
|
import pytest
|
|
errno = pytest.main(shlex.split(self.pytest_args))
|
|
sys.exit(errno)
|
|
|
|
|
|
setup(
|
|
name='certbot-apache',
|
|
version=version,
|
|
description="Apache plugin for Certbot",
|
|
url='https://github.com/letsencrypt/letsencrypt',
|
|
author="Certbot Project",
|
|
author_email='client-dev@letsencrypt.org',
|
|
license='Apache License 2.0',
|
|
python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*',
|
|
classifiers=[
|
|
'Development Status :: 5 - Production/Stable',
|
|
'Environment :: Plugins',
|
|
'Intended Audience :: System Administrators',
|
|
'License :: OSI Approved :: Apache Software License',
|
|
'Operating System :: POSIX :: Linux',
|
|
'Programming Language :: Python',
|
|
'Programming Language :: Python :: 2',
|
|
'Programming Language :: Python :: 2.7',
|
|
'Programming Language :: Python :: 3',
|
|
'Programming Language :: Python :: 3.5',
|
|
'Programming Language :: Python :: 3.6',
|
|
'Programming Language :: Python :: 3.7',
|
|
'Programming Language :: Python :: 3.8',
|
|
'Topic :: Internet :: WWW/HTTP',
|
|
'Topic :: Security',
|
|
'Topic :: System :: Installation/Setup',
|
|
'Topic :: System :: Networking',
|
|
'Topic :: System :: Systems Administration',
|
|
'Topic :: Utilities',
|
|
],
|
|
|
|
packages=find_packages(),
|
|
include_package_data=True,
|
|
install_requires=install_requires,
|
|
extras_require={
|
|
'dev': dev_extras,
|
|
},
|
|
entry_points={
|
|
'certbot.plugins': [
|
|
'apache = certbot_apache._internal.entrypoint:ENTRYPOINT',
|
|
],
|
|
},
|
|
test_suite='certbot_apache',
|
|
tests_require=["pytest"],
|
|
cmdclass={"test": PyTest},
|
|
)
|