From 5cec1bf1b644c33cffe96e8f8ebd11a1a343bc6d Mon Sep 17 00:00:00 2001 From: Terry Chia Date: Sun, 22 Mar 2015 11:49:08 +0800 Subject: Add plumbing for hypothesis. --- .gitignore | 1 + dev-requirements.txt | 2 ++ setup.py | 4 ++++ tox.ini | 25 ++++++++++++++++++++++++- 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8a870e05..bf1a504a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ htmlcov/ *.egg .eggs/ *.py[co] +./hypothesis diff --git a/dev-requirements.txt b/dev-requirements.txt index 440d3b0f..55aebd4f 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -12,5 +12,7 @@ sphinx_rtd_theme sphinxcontrib-spelling tox twine +hypothesis +hypothesis-pytest -e . -e vectors diff --git a/setup.py b/setup.py index b36f3de6..ea2ea181 100644 --- a/setup.py +++ b/setup.py @@ -62,6 +62,10 @@ test_requirements = [ "iso8601", ] +if sys.version_info[:2] == (2, 6): + test_requirements.append("hypothesis") + test_requirements.append("hypothesis-pytest") + # 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")): diff --git a/tox.ini b/tox.ini index a890e38a..1c15abff 100644 --- a/tox.ini +++ b/tox.ini @@ -8,6 +8,29 @@ deps = iso8601 pretend pytest<2.8 + hypothesis + hypothesis-pytest + ./vectors +passenv = ARCHFLAGS LDFLAGS CFLAGS INCLUDE LIB LD_LIBRARY_PATH USERNAME +commands = + pip list + python -c "from cryptography.hazmat.backends.openssl.backend import backend; print(backend.openssl_version_text())" + # We use parallel mode and then combine here so that coverage.py will take + # the paths like .tox/py34/lib/python3.4/site-packages/cryptography/__init__.py + # and collapse them into src/cryptography/__init__.py. + coverage run --parallel-mode -m pytest --capture=no --strict {posargs} + coverage combine + coverage report -m + +[testenv:py26] +# This mirrors the testenv minus the hypothesis and hypothesis-test deps. +deps = + coverage + iso8601 + pretend + pytest<2.8 + hypothesis + hypothesis-pytest ./vectors passenv = ARCHFLAGS LDFLAGS CFLAGS INCLUDE LIB LD_LIBRARY_PATH USERNAME commands = @@ -85,7 +108,7 @@ commands = py.test --capture=no --strict --random {posargs} [flake8] -exclude = .tox,*.egg,.git,_build +exclude = .tox,*.egg,.git,_build,.hypothesis select = E,W,F,N,I application-import-names = cryptography,cryptography_vectors,tests -- cgit v1.2.3