aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2013-12-24 22:43:46 -0800
committerPaul Kehrer <paul.l.kehrer@gmail.com>2013-12-24 22:43:46 -0800
commit0865a8b81075bfe073aba56e03cc57c30bfffe00 (patch)
treef029d15b5d36d05bfad67c9aac157ffdb139a417
parent348c80f2eba66b5c1b7f4c3a5ee8fc330895ae4e (diff)
parent2b3f94271209883aab4181ac5401c699c5c60b75 (diff)
downloadcryptography-0865a8b81075bfe073aba56e03cc57c30bfffe00.tar.gz
cryptography-0865a8b81075bfe073aba56e03cc57c30bfffe00.tar.bz2
cryptography-0865a8b81075bfe073aba56e03cc57c30bfffe00.zip
Merge pull request #347 from alex/better-error-emssage
Better error emssage
-rw-r--r--tests/conftest.py8
-rw-r--r--tests/skip_check.py22
-rw-r--r--tests/test_skip_check.py31
-rw-r--r--tests/test_utils.py21
-rw-r--r--tests/utils.py12
5 files changed, 35 insertions, 59 deletions
diff --git a/tests/conftest.py b/tests/conftest.py
index 91ba988f..e059b630 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -4,7 +4,7 @@ from cryptography.hazmat.backends.interfaces import (
HMACBackend, CipherBackend, HashBackend
)
-from .skip_check import skip_check
+from .utils import check_for_iface
def pytest_generate_tests(metafunc):
@@ -16,6 +16,6 @@ def pytest_generate_tests(metafunc):
@pytest.mark.trylast
def pytest_runtest_setup(item):
- skip_check('hmac', HMACBackend, item)
- skip_check('cipher', CipherBackend, item)
- skip_check('hash', HashBackend, item)
+ check_for_iface("hmac", HMACBackend, item)
+ check_for_iface("cipher", CipherBackend, item)
+ check_for_iface("hash", HashBackend, item)
diff --git a/tests/skip_check.py b/tests/skip_check.py
deleted file mode 100644
index 454a3c5f..00000000
--- a/tests/skip_check.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import absolute_import, division, print_function
-
-import pytest
-
-
-def skip_check(name, iface, item):
- if name in item.keywords and item.funcargs.get('backend') is not None:
- if not isinstance(item.funcargs['backend'], iface):
- pytest.skip("Backend does not support {0}".format(name))
diff --git a/tests/test_skip_check.py b/tests/test_skip_check.py
deleted file mode 100644
index 3b303aca..00000000
--- a/tests/test_skip_check.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-# implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-from __future__ import absolute_import, division, print_function
-
-import pretend
-
-import pytest
-
-from .skip_check import skip_check
-
-
-class FakeInterface(object):
- pass
-
-
-def test_skip_check():
- item = pretend.stub(keywords=["fake_name"], funcargs={"backend": True})
- with pytest.raises(pytest.skip.Exception) as exc_info:
- skip_check("fake_name", FakeInterface, item)
- assert exc_info.value.args[0] == "Backend does not support fake_name"
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 5c58fd76..a65091ff 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -14,14 +14,33 @@
import os
import textwrap
+import pretend
+
import pytest
from .utils import (
load_nist_vectors, load_vectors_from_file, load_cryptrec_vectors,
- load_openssl_vectors, load_hash_vectors,
+ load_openssl_vectors, load_hash_vectors, check_for_iface
)
+class FakeInterface(object):
+ pass
+
+
+def test_check_for_iface():
+ item = pretend.stub(keywords=["fake_name"], funcargs={"backend": True})
+ with pytest.raises(pytest.skip.Exception) as exc_info:
+ check_for_iface("fake_name", FakeInterface, item)
+ assert exc_info.value.args[0] == "True backend does not support fake_name"
+
+ item = pretend.stub(
+ keywords=["fake_name"],
+ funcargs={"backend": FakeInterface()}
+ )
+ check_for_iface("fake_name", FakeInterface, item)
+
+
def test_load_nist_vectors():
vector_data = textwrap.dedent("""
# CAVS 11.1
diff --git a/tests/utils.py b/tests/utils.py
index 94f97d59..82021a5f 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -11,7 +11,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import os.path
+import os
+
+import pytest
+
+
+def check_for_iface(name, iface, item):
+ if name in item.keywords and "backend" in item.funcargs:
+ if not isinstance(item.funcargs["backend"], iface):
+ pytest.skip("{0} backend does not support {1}".format(
+ item.funcargs["backend"], name
+ ))
def load_vectors_from_file(filename, loader):