add mark that allows us to do skip tests on backends via decorators
diff --git a/tests/test_utils.py b/tests/test_utils.py
index a65091f..b347efd 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -20,7 +20,8 @@
from .utils import (
load_nist_vectors, load_vectors_from_file, load_cryptrec_vectors,
- load_openssl_vectors, load_hash_vectors, check_for_iface
+ load_openssl_vectors, load_hash_vectors, check_for_iface,
+ supported_by_backend_skip
)
@@ -41,6 +42,36 @@
check_for_iface("fake_name", FakeInterface, item)
+def test_supported_by_backend_skip():
+ supported = pretend.stub(
+ kwargs={"only_if": lambda backend: False, "skip_message": "Nope"}
+ )
+ item = pretend.stub(keywords={"supported": supported},
+ funcargs={"backend": True})
+ with pytest.raises(pytest.skip.Exception) as exc_info:
+ supported_by_backend_skip(item)
+ assert exc_info.value.args[0] == "Nope"
+
+
+def test_supported_by_backend_no_skip():
+ supported = pretend.stub(
+ kwargs={"only_if": lambda backend: True, "skip_message": "Nope"}
+ )
+ item = pretend.stub(keywords={"supported": supported},
+ funcargs={"backend": True})
+ assert supported_by_backend_skip(item) is None
+
+
+def test_supported_by_backend_skip_no_backend():
+ supported = pretend.stub(
+ kwargs={"only_if": "notalambda", "skip_message": "Nope"}
+ )
+ item = pretend.stub(keywords={"supported": supported},
+ funcargs={})
+ with pytest.raises(TypeError):
+ supported_by_backend_skip(item)
+
+
def test_load_nist_vectors():
vector_data = textwrap.dedent("""
# CAVS 11.1