54 lines
1.8 KiB
Python
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()
|