| import logging |
| import os |
| import sys |
| import pytest |
| |
| sys.path.append(os.path.join(os.path.dirname(__file__), '../..')) |
| |
| from .md_conf import HttpdConf |
| from .md_env import MDTestEnv |
| from .md_acme import MDPebbleRunner, MDBoulderRunner |
| |
| |
| def pytest_report_header(config, startdir): |
| env = MDTestEnv() |
| return "mod_md: [apache: {aversion}({prefix}), mod_{ssl}, ACME server: {acme}]".format( |
| prefix=env.prefix, |
| aversion=env.get_httpd_version(), |
| ssl=env.ssl_module, |
| acme=env.acme_server, |
| ) |
| |
| |
| @pytest.fixture(scope="package") |
| def env(pytestconfig) -> MDTestEnv: |
| level = logging.INFO |
| console = logging.StreamHandler() |
| console.setLevel(level) |
| console.setFormatter(logging.Formatter('%(levelname)s: %(message)s')) |
| logging.getLogger('').addHandler(console) |
| logging.getLogger('').setLevel(level=level) |
| env = MDTestEnv(pytestconfig=pytestconfig) |
| env.setup_httpd() |
| env.apache_access_log_clear() |
| env.httpd_error_log.clear_log() |
| yield env |
| env.apache_stop() |
| |
| |
| @pytest.fixture(autouse=True, scope="package") |
| def _md_package_scope(env): |
| env.httpd_error_log.add_ignored_lognos([ |
| "AH10085" # There are no SSL certificates configured and no other module contributed any |
| ]) |
| |
| |
| @pytest.fixture(scope="package") |
| def acme(env): |
| acme_server = None |
| if env.acme_server == 'pebble': |
| acme_server = MDPebbleRunner(env, configs={ |
| 'default': os.path.join(env.gen_dir, 'pebble/pebble.json'), |
| 'eab': os.path.join(env.gen_dir, 'pebble/pebble-eab.json'), |
| }) |
| elif env.acme_server == 'boulder': |
| acme_server = MDBoulderRunner(env) |
| yield acme_server |
| if acme_server is not None: |
| acme_server.stop() |
| |