blob: 3fa111716ca30746bedfb5c595ae4cd7127bf6d7 [file]
import inspect
import logging
import os
import subprocess
from pyhttpd.env import HttpdTestEnv, HttpdTestSetup
log = logging.getLogger(__name__)
class GeneratorsTestSetup(HttpdTestSetup):
def __init__(self, env: 'HttpdTestEnv'):
super().__init__(env=env)
self.add_source_dir(os.path.dirname(inspect.getfile(GeneratorsTestSetup)))
self.add_modules(["cgid", "include", "headers"])
class GeneratorsTestEnv(HttpdTestEnv):
def __init__(self, pytestconfig=None):
super().__init__(pytestconfig=pytestconfig)
# A LogLevel for an unloaded module is a fatal config error.
log_modules = ["include", "core"]
if self.has_cgid_module:
log_modules.insert(0, "cgid")
self.add_httpd_log_modules(log_modules)
def setup_httpd(self, setup: HttpdTestSetup = None):
super().setup_httpd(setup=GeneratorsTestSetup(env=self))
@property
def has_cgid_module(self) -> bool:
"""Whether mod_cgid was built, shared or static."""
if self.has_shared_module("cgid"):
return True
p = subprocess.run([os.path.join(self.bin_dir, "httpd"), "-l"],
capture_output=True, text=True)
return "mod_cgid.c" in p.stdout