Add plumbing for hypothesis.
diff --git a/.gitignore b/.gitignore
index 8a870e0..bf1a504 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@
*.egg
.eggs/
*.py[co]
+./hypothesis
diff --git a/dev-requirements.txt b/dev-requirements.txt
index 440d3b0..55aebd4 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -12,5 +12,7 @@
sphinxcontrib-spelling
tox
twine
+hypothesis
+hypothesis-pytest
-e .
-e vectors
diff --git a/setup.py b/setup.py
index b36f3de..ea2ea18 100644
--- a/setup.py
+++ b/setup.py
@@ -62,6 +62,10 @@
"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 a890e38..1c15abf 100644
--- a/tox.ini
+++ b/tox.ini
@@ -8,6 +8,29 @@
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 @@
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