Made canonical domains obligatorix

This commit is contained in:
Kevin Veen-Birkenbach 2025-07-22 18:47:38 +02:00
parent ff18c7cd73
commit d94254effb
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E

View File

@ -0,0 +1,36 @@
import unittest
import yaml
import glob
import os
class TestWebRolesDomains(unittest.TestCase):
def test_canonical_domains_present_and_not_empty(self):
"""
Check all roles/web-*/config/main.yml files:
- must have domains.canonical defined
- domains.canonical must not be empty dict, empty list, or empty string
"""
role_config_paths = glob.glob("roles/web-*/config/main.yml")
self.assertTrue(role_config_paths, "No roles/web-*/config/main.yml files found.")
for path in role_config_paths:
with self.subTest(role_config=path):
with open(path, "r") as f:
data = yaml.safe_load(f)
self.assertIsInstance(data, dict, f"YAML root is not a dict in {path}")
domains = data.get("domains")
self.assertIsNotNone(domains, f"'domains' section missing in {path}")
self.assertIsInstance(domains, dict, f"'domains' must be a dict in {path}")
canonical = domains.get("canonical")
self.assertIsNotNone(canonical, f"'domains.canonical' missing in {path}")
# Check for emptiness
empty_values = [{}, [], ""]
self.assertNotIn(canonical, empty_values,
f"'domains.canonical' in {path} must not be empty dict, list, or empty string")
if __name__ == "__main__":
unittest.main()