diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2019-05-07 15:52:49 -0400 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2019-05-07 15:52:49 -0400 |
commit | ab115a9d1953f4e71be818b614beba96fd96df22 (patch) | |
tree | 95029c3499cc20e2c08ea42fddb246e715d21720 | |
parent | a7e09d8b4f7c25fec4e270d9549dff521648ca3c (diff) | |
download | cryptography-ab115a9d1953f4e71be818b614beba96fd96df22.tar.gz cryptography-ab115a9d1953f4e71be818b614beba96fd96df22.tar.bz2 cryptography-ab115a9d1953f4e71be818b614beba96fd96df22.zip |
Drop setup.py test support. (#4879)
* Drop setup.py test support.
It's fragile and relies on eggs. While our downstream redistributors don't love this (sorry!), it seems like the right tradeoff.
* Remove unused
* Added a changelog entry
* typo
* line length
-rw-r--r-- | CHANGELOG.rst | 3 | ||||
-rw-r--r-- | Jenkinsfile | 23 | ||||
-rw-r--r-- | setup.py | 64 |
3 files changed, 10 insertions, 80 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 76e7a52a..92050d27 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,6 +14,9 @@ Changelog ``cryptography.hazmat.primitives.mac.MACContext`` interface. The ``CMAC`` and ``HMAC`` APIs have not changed, but they are no longer registered as ``MACContext`` instances. +* Removed support for running our tests with ``setup.py test``. Users + interested in running our tests can continue to follow the directions in our + :doc:`development documentation</development/getting-started>`. * Add support for :class:`~cryptography.hazmat.primitives.poly1305.Poly1305` when using OpenSSL 1.1.1 or newer. * Support serialization with ``Encoding.OpenSSH`` and ``PublicFormat.OpenSSH`` diff --git a/Jenkinsfile b/Jenkinsfile index 14a1ed7f..e4475741 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -221,27 +221,4 @@ for (config in configs) { } } -/* Add the python setup.py test builder */ -builders["setup.py-test"] = { - node("docker") { - stage("python setup.py test") { - docker.image("pyca/cryptography-runner-ubuntu-rolling").inside { - try { - checkout_git("docker") - sh """#!/usr/bin/env bash - set -xe - cd cryptography - virtualenv .venv - source .venv/bin/activate - python setup.py test - """ - } finally { - deleteDir() - } - - } - } - } -} - parallel builders @@ -8,7 +8,6 @@ from __future__ import absolute_import, division, print_function import os import platform -import subprocess import sys from distutils.command.build import build @@ -17,7 +16,6 @@ import pkg_resources import setuptools from setuptools import find_packages, setup from setuptools.command.install import install -from setuptools.command.test import test if ( @@ -41,8 +39,6 @@ with open(os.path.join(src_dir, "cryptography", "__about__.py")) as f: exec(f.read(), about) -VECTORS_DEPENDENCY = "cryptography_vectors=={0}".format(about['__version__']) - # `setup_requirements` must be kept in sync with `pyproject.toml` setup_requirements = ["cffi>=1.8,!=1.11.3"] @@ -53,42 +49,6 @@ if platform.python_implementation() == "PyPy": "PyPy to use this library." ) -test_requirements = [ - "pytest>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2", - "pretend", - "iso8601", - "pytz", - "hypothesis>=1.11.4,!=3.79.2", -] - - -# If there's no vectors locally that probably means we are in a tarball and -# need to go and get the matching vectors package from PyPi -if not os.path.exists(os.path.join(base_dir, "vectors/setup.py")): - test_requirements.append(VECTORS_DEPENDENCY) - - -class PyTest(test): - def finalize_options(self): - test.finalize_options(self) - self.test_args = [] - self.test_suite = True - - # This means there's a vectors/ folder with the package in here. - # cd into it, install the vectors package and then refresh sys.path - if VECTORS_DEPENDENCY not in test_requirements: - subprocess.check_call( - [sys.executable, "setup.py", "install"], cwd="vectors" - ) - pkg_resources.get_distribution("cryptography_vectors").activate() - - def run_tests(self): - # Import here because in module scope the eggs are not loaded. - import pytest - test_args = [os.path.join(base_dir, "tests")] - errno = pytest.main(test_args) - sys.exit(errno) - def keywords_with_side_effects(argv): """ @@ -183,7 +143,6 @@ def keywords_with_side_effects(argv): "cmdclass": { "build": DummyBuild, "install": DummyInstall, - "test": DummyPyTest, } } else: @@ -195,9 +154,6 @@ def keywords_with_side_effects(argv): return { "setup_requires": setup_requirements, - "cmdclass": { - "test": PyTest, - }, "cffi_modules": cffi_modules } @@ -229,17 +185,6 @@ class DummyInstall(install): raise RuntimeError(setup_requires_error) -class DummyPyTest(test): - """ - This class makes it very obvious when ``keywords_with_side_effects()`` has - incorrectly interpreted the command line arguments to ``setup.py test`` as - one of the 'side effect free' commands or options. - """ - - def run_tests(self): - raise RuntimeError(setup_requires_error) - - with open(os.path.join(base_dir, "README.rst")) as f: long_description = f.read() @@ -291,11 +236,16 @@ setup( "asn1crypto >= 0.21.0", "six >= 1.4.1", ] + setup_requirements, - tests_require=test_requirements, extras_require={ ":python_version < '3'": ["enum34", "ipaddress"], - "test": test_requirements, + "test": [ + "pytest>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2", + "pretend", + "iso8601", + "pytz", + "hypothesis>=1.11.4,!=3.79.2", + ], "docs": [ "sphinx >= 1.6.5,!=1.8.0", "sphinx_rtd_theme", |