from __future__ import annotations import os import subprocess from pathlib import Path PROJECT_ROOT = Path(__file__).resolve().parents[2] START_SCRIPT = PROJECT_ROOT / "start_plantai_9000.sh" def test_start_plantai_9000_ignores_sandbox_profile(tmp_path: Path) -> None: fake_python = tmp_path / "conda" / "envs" / "test4py311" / "bin" / "python" fake_python.parent.mkdir(parents=True) fake_python.write_text( "#!/bin/sh\n" "printf 'FAKE_PORT=%s\\n' \"$PLANTAI_WEB_PORT\"\n" "printf 'FAKE_PROJECT=%s\\n' \"$BBAV5_PROJECT_ROOT\"\n" "printf 'FAKE_PLANTAI_PROJECT=%s\\n' \"$PLANTAI_PROJECT_ROOT\"\n" "printf 'FAKE_QUEUE=%s\\n' \"$BBAV5_QUEUE_PREFIX\"\n" "printf 'FAKE_REDIS=%s\\n' \"$BBAV5_REDIS_URL\"\n" "printf 'FAKE_ARGS=%s\\n' \"$*\"\n", encoding="utf-8", ) fake_python.chmod(0o755) env = os.environ.copy() env.update( { "BBAV5_CONDA_BASE": str(tmp_path / "conda"), "PLANTAI_WEB_PORT": "19000", "BBAV5_PROJECT_ROOT": "/tmp/gwas-project", "PLANTAI_PROJECT_ROOT": "/tmp/gwas-project", "BBAV5_QUEUE_PREFIX": "plantai_gwas18_test", "BBAV5_REDIS_URL": "redis://localhost:6379/11", } ) completed = subprocess.run( ["bash", str(START_SCRIPT)], cwd=PROJECT_ROOT, env=env, check=True, text=True, capture_output=True, ) output = completed.stdout assert "URL: http://127.0.0.1:9000" in output assert f"Project: {PROJECT_ROOT}" in output assert "Queue prefix: plantai_dev_9000" in output assert "Redis: redis://localhost:6379/10" in output assert "FAKE_PORT=9000" in output assert f"FAKE_PROJECT={PROJECT_ROOT}" in output assert f"FAKE_PLANTAI_PROJECT={PROJECT_ROOT}" in output assert "FAKE_QUEUE=plantai_dev_9000" in output assert "FAKE_REDIS=redis://localhost:6379/10" in output assert "--port 9000" in output