Files
ccdi/tests/deploy/test_deploy_to_nas.py

53 lines
1.4 KiB
Python

from pathlib import Path
import subprocess
REPO_ROOT = Path(__file__).resolve().parents[2]
SCRIPT_PATH = REPO_ROOT / "deploy" / "deploy-to-nas.sh"
def test_sh_dry_run_uses_default_nas_target():
result = subprocess.run(
["bash", str(SCRIPT_PATH), "--dry-run"],
cwd=REPO_ROOT,
capture_output=True,
text=True,
)
assert result.returncode == 0
assert "Host: 116.62.17.81" in result.stdout
assert "Port: 9444" in result.stdout
assert "Username: wkc" in result.stdout
assert "RemoteRoot: /volume1/webapp/ccdi" in result.stdout
def test_sh_dry_run_accepts_override_arguments():
result = subprocess.run(
[
"bash",
str(SCRIPT_PATH),
"10.0.0.8",
"2222",
"deploy-user",
"secret",
"/volume2/custom/app",
"--dry-run",
],
cwd=REPO_ROOT,
capture_output=True,
text=True,
)
assert result.returncode == 0
assert "Host: 10.0.0.8" in result.stdout
assert "Port: 2222" in result.stdout
assert "Username: deploy-user" in result.stdout
assert "RemoteRoot: /volume2/custom/app" in result.stdout
def test_sh_script_should_render_nas_env_into_stage_package():
script_text = SCRIPT_PATH.read_text(encoding="utf-8")
assert 'render_nas_env.py' in script_text
assert '"${STAGE_ROOT}/.env"' in script_text