Files
DbusSmsForward/tests/test_deployment_artifacts.py

54 lines
1.8 KiB
Python

import os
import subprocess
import sys
import unittest
from pathlib import Path
PROJECT_ROOT = Path("/Users/chick/.Hermes/workspace/DbusSmsForward")
CLI_ENV = {**os.environ, "PYTHONPATH": str(PROJECT_ROOT / "src")}
class DeploymentArtifactsTests(unittest.TestCase):
def test_debian_systemd_unit_uses_forever_polling_and_pythonpath(self):
service_path = PROJECT_ROOT / "deploy" / "debian" / "dbussmsforward.service"
content = service_path.read_text(encoding="utf-8")
self.assertIn("WorkingDirectory=/opt/dbussmsforward", content)
self.assertIn("Environment=PYTHONPATH=/opt/dbussmsforward/src", content)
self.assertIn("--iterations 0", content)
self.assertIn("/etc/dbussmsforward/appsettings.json", content)
def test_openwrt_init_script_uses_procd_and_forever_polling(self):
init_path = PROJECT_ROOT / "deploy" / "openwrt" / "dbussmsforward.init"
content = init_path.read_text(encoding="utf-8")
self.assertIn("USE_PROCD=1", content)
self.assertIn("PYTHONPATH=\"$APP_DIR/src\"", content)
self.assertIn("--iterations 0", content)
self.assertIn('CONFIG_FILE="/etc/dbussmsforward/appsettings.json"', content)
def test_deploy_config_validates(self):
result = subprocess.run(
[
sys.executable,
"-m",
"dbussmsforward.cli",
"validate-config",
"--config",
"deploy/common/appsettings.deploy.json",
],
cwd=str(PROJECT_ROOT),
env=CLI_ENV,
capture_output=True,
text=True,
check=False,
)
self.assertEqual(result.returncode, 0, msg=result.stderr)
self.assertIn("config ok", result.stdout)
if __name__ == "__main__":
unittest.main()