aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2014-10-25 12:22:10 -0700
committerPaul Kehrer <paul.l.kehrer@gmail.com>2014-10-25 12:22:10 -0700
commit902d8cfd58de395748d71f449944faa9dbac8725 (patch)
tree681d1b5a68a6e89efc8287685592b094f634ff9e
parent56f1a0ae53773285db53c367e697e0a015eed5f1 (diff)
downloadcryptography-902d8cfd58de395748d71f449944faa9dbac8725.tar.gz
cryptography-902d8cfd58de395748d71f449944faa9dbac8725.tar.bz2
cryptography-902d8cfd58de395748d71f449944faa9dbac8725.zip
move skip_if_empty to separate function for test coverage
-rw-r--r--tests/conftest.py17
-rw-r--r--tests/test_utils.py9
-rw-r--r--tests/utils.py9
3 files changed, 23 insertions, 12 deletions
diff --git a/tests/conftest.py b/tests/conftest.py
index 1cb2b30d..9dc37d38 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -17,7 +17,7 @@ import pytest
from cryptography.hazmat.backends import _available_backends
-from .utils import check_backend_support, select_backends
+from .utils import check_backend_support, select_backends, skip_if_empty
def pytest_generate_tests(metafunc):
@@ -39,16 +39,11 @@ def pytest_generate_tests(metafunc):
if isinstance(backend, required_interfaces):
filtered_backends.append(backend)
- if not filtered_backends:
- # If you pass an empty list to parametrize Bad Things(tm) happen
- # as of pytest 2.6.4 when the test also has a parametrize decorator
- pytest.skip(
- "No backends provided supply the interface: {0}".format(
- ", ".join(iface.__name__ for iface in required_interfaces)
- )
- )
- else:
- metafunc.parametrize("backend", filtered_backends)
+ # If you pass an empty list to parametrize Bad Things(tm) happen
+ # as of pytest 2.6.4 when the test also has a parametrize decorator
+ skip_if_empty(filtered_backends, required_interfaces)
+
+ metafunc.parametrize("backend", filtered_backends)
@pytest.mark.trylast
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 6c8d088b..8bb8422c 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -32,7 +32,7 @@ from .utils import (
load_fips_ecdsa_key_pair_vectors, load_fips_ecdsa_signing_vectors,
load_hash_vectors, load_kasvs_dh_vectors, load_nist_vectors,
load_pkcs1_vectors, load_rsa_nist_vectors, load_vectors_from_file,
- raises_unsupported_algorithm, select_backends
+ raises_unsupported_algorithm, select_backends, skip_if_empty
)
@@ -82,6 +82,13 @@ def test_select_two_backends():
assert selected_backends == [b1, b2]
+def test_skip_if_empty():
+ with pytest.raises(pytest.skip.Exception):
+ skip_if_empty([], [FakeInterface])
+
+ skip_if_empty(["notempty"], [FakeInterface])
+
+
def test_check_backend_support_skip():
supported = pretend.stub(
kwargs={"only_if": lambda backend: False, "skip_message": "Nope"}
diff --git a/tests/utils.py b/tests/utils.py
index 7b462c2d..acc6c141 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -53,6 +53,15 @@ def select_backends(names, backend_list):
)
+def skip_if_empty(backend_list, required_interfaces):
+ if not backend_list:
+ pytest.skip(
+ "No backends provided supply the interface: {0}".format(
+ ", ".join(iface.__name__ for iface in required_interfaces)
+ )
+ )
+
+
def check_backend_support(item):
supported = item.keywords.get("supported")
if supported and "backend" in item.funcargs: