Skip to content

Commit 849eed0

Browse files
committed
test: Support split diracx package for integration tests
1 parent e3ce7d0 commit 849eed0

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

integration_tests.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,13 @@ def create(
146146
flags: Optional[list[str]] = typer.Argument(None),
147147
editable: Optional[bool] = None,
148148
extra_module: Optional[list[str]] = None,
149+
diracx_dist_dir: Optional[str] = None,
149150
release_var: Optional[str] = None,
150151
run_server_tests: bool = True,
151152
run_client_tests: bool = True,
152153
):
153154
"""Start a local instance of the integration tests"""
154-
prepare_environment(flags, editable, extra_module, release_var)
155+
prepare_environment(flags, editable, extra_module, diracx_dist_dir, release_var)
155156
install_server()
156157
install_client()
157158
exit_code = 0
@@ -191,6 +192,7 @@ def prepare_environment(
191192
flags: Optional[list[str]] = typer.Argument(None),
192193
editable: Optional[bool] = None,
193194
extra_module: Optional[list[str]] = None,
195+
diracx_dist_dir: Optional[str] = None,
194196
release_var: Optional[str] = None,
195197
):
196198
"""Prepare the local environment for installing DIRAC."""
@@ -227,7 +229,7 @@ def prepare_environment(
227229
extra_services = list(chain(*[config["extra-services"] for config in module_configs.values()]))
228230

229231
typer.secho("Running docker-compose to create containers", fg=c.GREEN)
230-
with _gen_docker_compose(modules) as docker_compose_fn:
232+
with _gen_docker_compose(modules, diracx_dist_dir=diracx_dist_dir) as docker_compose_fn:
231233
subprocess.run(
232234
["docker-compose", "-f", docker_compose_fn, "up", "-d", "dirac-server", "dirac-client"] + extra_services,
233235
check=True,
@@ -322,7 +324,7 @@ def prepare_environment(
322324
typer.secho("Running docker-compose to create DiracX containers", fg=c.GREEN)
323325
typer.secho(f"Will leave a folder behind: {docker_compose_fn_final}", fg=c.YELLOW)
324326

325-
with _gen_docker_compose(modules) as docker_compose_fn:
327+
with _gen_docker_compose(modules, diracx_dist_dir=diracx_dist_dir) as docker_compose_fn:
326328
# We cannot use the temporary directory created in the context manager because
327329
# we don't stay in the contect manager (Popen)
328330
# So we need something that outlives it.
@@ -545,7 +547,7 @@ class TestExit(typer.Exit):
545547

546548

547549
@contextmanager
548-
def _gen_docker_compose(modules):
550+
def _gen_docker_compose(modules, *, diracx_dist_dir=None):
549551
# Load the docker-compose configuration and mount the necessary volumes
550552
input_fn = Path(__file__).parent / "tests/CI/docker-compose.yml"
551553
docker_compose = yaml.safe_load(input_fn.read_text())
@@ -560,10 +562,12 @@ def _gen_docker_compose(modules):
560562
docker_compose["services"]["diracx-wait-for-db"]["volumes"].extend(volumes[:])
561563

562564
module_configs = _load_module_configs(modules)
563-
if "diracx" in module_configs:
564-
docker_compose["services"]["diracx"]["volumes"].append(
565-
f"{modules['diracx']}/src/diracx:{module_configs['diracx']['install-location']}"
566-
)
565+
if diracx_dist_dir is not None:
566+
for container_name in ["diracx-init-cs", "diracx-wait-for-db", "diracx"]:
567+
docker_compose["services"][container_name]["volumes"].append(f"{diracx_dist_dir}:/diracx_sources")
568+
docker_compose["services"][container_name].setdefault("environment", []).append(
569+
"DIRACX_CUSTOM_SOURCE_PREFIXES=/diracx_sources"
570+
)
567571

568572
# Add any extension services
569573
for module_name, module_configs in module_configs.items():

tests/CI/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ services:
181181
- diracx-cs-store:/cs_store/
182182
- diracx-key-store:/signing-key/
183183
entrypoint: |
184-
/entrypoint.sh bash -xc 'uvicorn --factory diracx.routers:create_app'
184+
/entrypoint.sh bash -xc 'uvicorn --factory diracx.routers:create_app --host=0.0.0.0'
185185
186186
healthcheck:
187187
test: ["CMD", "/entrypoint.sh", "curl", "-f", "http://localhost:8000/.well-known/openid-configuration"]

tests/CI/exportCSLoop.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ source /home/dirac/ServerInstallDIR/bashrc
1313
git config --global user.name "DIRAC Server CI"
1414
git config --global user.email "dirac-server-ci@invalid"
1515

16+
mkdir -p /home/dirac/TestCode/diracx/tests/cli/legacy/cs_sync/
17+
curl -L https://raw.githubusercontent.com/DIRACGrid/diracx/main/diracx-cli/tests/legacy/cs_sync/convert_integration_test.yaml > /home/dirac/TestCode/diracx/tests/cli/legacy/cs_sync/convert_integration_test.yaml
18+
1619
while true; do
1720
DIRAC_COMPAT_ENABLE_CS_CONVERSION=x dirac internal legacy cs-sync \
1821
"$DIRACOS/etc/Production.cfg" \

0 commit comments

Comments
 (0)