mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 09:36:05 -08:00
/data and /tmp standarization
This commit is contained in:
57
test/docker_tests/conftest.py
Normal file
57
test/docker_tests/conftest.py
Normal file
@@ -0,0 +1,57 @@
|
||||
import os
|
||||
import pathlib
|
||||
import subprocess
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
def _announce(request: pytest.FixtureRequest, message: str) -> None:
|
||||
reporter = request.config.pluginmanager.get_plugin("terminalreporter")
|
||||
if reporter: # pragma: no branch - depends on pytest runner
|
||||
reporter.write_line(message)
|
||||
else:
|
||||
print(message)
|
||||
|
||||
|
||||
@pytest.fixture(scope="session", autouse=True)
|
||||
def build_netalertx_test_image(request: pytest.FixtureRequest) -> None:
|
||||
"""Build the docker test image before running any docker-based tests."""
|
||||
|
||||
image = os.environ.get("NETALERTX_TEST_IMAGE", "netalertx-test")
|
||||
project_root = pathlib.Path(__file__).resolve().parents[2]
|
||||
|
||||
cmd = [
|
||||
"docker",
|
||||
"buildx",
|
||||
"build",
|
||||
"--load",
|
||||
"-t",
|
||||
image,
|
||||
".",
|
||||
]
|
||||
|
||||
_announce(request, f"[docker-tests] Building test image '{image}' using docker buildx")
|
||||
|
||||
env = os.environ.copy()
|
||||
env.setdefault("DOCKER_BUILDKIT", "1")
|
||||
|
||||
result = subprocess.run(
|
||||
cmd,
|
||||
cwd=project_root,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
text=True,
|
||||
check=False,
|
||||
env=env,
|
||||
)
|
||||
|
||||
if result.returncode != 0:
|
||||
_announce(request, f"[docker-tests] docker buildx failed for '{image}'")
|
||||
pytest.fail(
|
||||
"Docker buildx failed before running docker tests.\n"
|
||||
f"Command: {' '.join(cmd)}\n"
|
||||
f"STDOUT:\n{result.stdout}\n"
|
||||
f"STDERR:\n{result.stderr}"
|
||||
)
|
||||
|
||||
_announce(request, f"[docker-tests] docker buildx completed for '{image}'")
|
||||
Reference in New Issue
Block a user