48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
# This file is dual licensed under the terms of the Apache License, Version
|
|
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
|
|
# for complete details.
|
|
|
|
|
|
import pytest
|
|
|
|
from cryptography.hazmat.backends.openssl import backend as openssl_backend
|
|
|
|
from .utils import check_backend_support
|
|
|
|
|
|
def pytest_configure(config):
|
|
if config.getoption("--enable-fips"):
|
|
openssl_backend._enable_fips()
|
|
|
|
|
|
def pytest_report_header(config):
|
|
return "\n".join(
|
|
[
|
|
"OpenSSL: {}".format(openssl_backend.openssl_version_text()),
|
|
"FIPS Enabled: {}".format(openssl_backend._fips_enabled),
|
|
]
|
|
)
|
|
|
|
|
|
def pytest_addoption(parser):
|
|
parser.addoption("--wycheproof-root", default=None)
|
|
parser.addoption("--enable-fips", default=False)
|
|
|
|
|
|
def pytest_runtest_setup(item):
|
|
if openssl_backend._fips_enabled:
|
|
for marker in item.iter_markers(name="skip_fips"):
|
|
pytest.skip(marker.kwargs["reason"])
|
|
|
|
|
|
@pytest.fixture()
|
|
def backend(request):
|
|
check_backend_support(openssl_backend, request)
|
|
|
|
# Ensure the error stack is clear before the test
|
|
errors = openssl_backend._consume_errors_with_text()
|
|
assert not errors
|
|
yield openssl_backend
|
|
# Ensure the error stack is clear after the test
|
|
errors = openssl_backend._consume_errors_with_text()
|
|
assert not errors
|