Smail/test/deployment/test_domain_acceptance.py
smail a334085897
Some checks are pending
Security Checks / security (push) Waiting to run
统一部署验收域名为 cdis.cn
精确更新证书、Nginx、TLS、重定向和续期演练用例,统一使用 cdis.cn 与 web.cdis.cn。
2026-10-01 13:24:02 +08:00

29 lines
1.2 KiB
Python

"""验证 Smail 的后台域名、别名跳转和根域名泛域名证书约束。"""
from pathlib import Path
import unittest
ROOT = Path(__file__).resolve().parents[2]
NGINX = (ROOT / 'deploy/nginx/smail.conf').read_text(encoding='utf-8')
CERTIFICATE = (ROOT / 'deploy/nginx/deploy_certificate.py').read_text(encoding='utf-8')
RENEWAL = (ROOT / 'deploy/nginx/renew_certificate.py').read_text(encoding='utf-8')
class DomainAcceptanceTest(unittest.TestCase):
def test_web_domain_is_the_only_public_web_proxy(self):
self.assertIn('server_name __SMAIL_WEB_DOMAIN__;', NGINX)
self.assertIn('proxy_ssl_name __SMAIL_WEB_DOMAIN__;', NGINX)
self.assertIn('return 308 https://__SMAIL_WEB_DOMAIN__$request_uri;', NGINX)
self.assertNotIn('return 308 https://__SMAIL_MAIL_DOMAIN__$request_uri;', NGINX)
def test_certificate_requests_root_and_wildcard(self):
self.assertIn("DOMAINS = ('cdis.cn', '*.cdis.cn')", CERTIFICATE)
self.assertIn("CERTIFICATE_SNI = 'web.cdis.cn'", CERTIFICATE)
self.assertIn("'web.cdis.cn'", CERTIFICATE)
self.assertIn('DOMAINS = deploy.DOMAINS', RENEWAL)
if __name__ == '__main__':
unittest.main(verbosity=2)