aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/conftest.py24
-rw-r--r--tests/test_utils.py20
-rw-r--r--tests/utils.py11
3 files changed, 15 insertions, 40 deletions
diff --git a/tests/conftest.py b/tests/conftest.py
index c21f4dcc..c5efbd36 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -21,24 +21,14 @@ def backend(request):
mark.kwargs["interface"]
for mark in request.node.get_marker("requires_backend_interface")
]
- if all(
+ if not all(
isinstance(openssl_backend, iface) for iface in required_interfaces
):
- return openssl_backend
- pytest.skip(
- "OpenSSL doesn't implement required interfaces: {0}".format(
- required_interfaces
+ pytest.skip(
+ "OpenSSL doesn't implement required interfaces: {0}".format(
+ required_interfaces
+ )
)
- )
-
-@pytest.mark.trylast
-def pytest_runtest_setup(item):
- check_backend_support(item)
-
-
-def pytest_addoption(parser):
- parser.addoption(
- "--backend", action="store", metavar="NAME",
- help="Only run tests matching the backend NAME."
- )
+ check_backend_support(openssl_backend, request)
+ return openssl_backend
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 2b5a2af3..a1fa80b8 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -32,10 +32,9 @@ def test_check_backend_support_skip():
supported = pretend.stub(
kwargs={"only_if": lambda backend: False, "skip_message": "Nope"}
)
- item = pretend.stub(keywords={"supported": [supported]},
- funcargs={"backend": True})
+ item = pretend.stub(keywords={"supported": [supported]})
with pytest.raises(pytest.skip.Exception) as exc_info:
- check_backend_support(item)
+ check_backend_support(True, item)
assert exc_info.value.args[0] == "Nope (True)"
@@ -43,19 +42,8 @@ def test_check_backend_support_no_skip():
supported = pretend.stub(
kwargs={"only_if": lambda backend: True, "skip_message": "Nope"}
)
- item = pretend.stub(keywords={"supported": [supported]},
- funcargs={"backend": True})
- assert check_backend_support(item) is None
-
-
-def test_check_backend_support_no_backend():
- supported = pretend.stub(
- kwargs={"only_if": "notalambda", "skip_message": "Nope"}
- )
- item = pretend.stub(keywords={"supported": supported},
- funcargs={})
- with pytest.raises(ValueError):
- check_backend_support(item)
+ item = pretend.stub(keywords={"supported": [supported]})
+ assert check_backend_support(None, item) is None
def test_load_nist_vectors():
diff --git a/tests/utils.py b/tests/utils.py
index 136b0607..455b6bfe 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -25,17 +25,14 @@ KeyedHashVector = collections.namedtuple(
)
-def check_backend_support(item):
+def check_backend_support(backend, item):
supported = item.keywords.get("supported")
- if supported and "backend" in item.funcargs:
+ if supported:
for mark in supported:
- if not mark.kwargs["only_if"](item.funcargs["backend"]):
+ if not mark.kwargs["only_if"](backend):
pytest.skip("{0} ({1})".format(
- mark.kwargs["skip_message"], item.funcargs["backend"]
+ mark.kwargs["skip_message"], backend
))
- elif supported:
- raise ValueError("This mark is only available on methods that take a "
- "backend")
@contextmanager