Rewrote to unittest

This commit is contained in:
Kevin Veen-Birkenbach 2025-07-02 16:01:04 +02:00
parent ef663a1356
commit e807a3e956
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E

View File

@ -2,49 +2,59 @@
import os import os
import sys import sys
import unittest
# Add module_utils/ to the import path # Add module_utils/ to the import path
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../../..", "module_utils"))) sys.path.insert(
0,
os.path.abspath(
os.path.join(
os.path.dirname(__file__),
"../../..",
"module_utils",
)
),
)
from module_utils.cert_utils import CertUtils from module_utils.cert_utils import CertUtils
def test_matches():
tests = [
# Exact matches
("example.com", "example.com", True),
("www.example.com", "www.example.com", True),
("api.example.com", "api.example.com", True),
# Wildcard matches class TestCertUtilsMatches(unittest.TestCase):
("sub.example.com", "*.example.com", True), def setUp(self):
("www.example.com", "*.example.com", True), # prepare your test cases
self.tests = [
# Exact matches
("example.com", "example.com", True),
("www.example.com", "www.example.com", True),
("api.example.com", "api.example.com", True),
# Wildcard non-matches # Wildcard matches
("example.com", "*.example.com", False), # base domain is not covered ("sub.example.com", "*.example.com", True),
("deep.sub.example.com", "*.example.com", False), # too deep ("www.example.com", "*.example.com", True),
("sub.deep.example.com", "*.deep.example.com", True), # correct: one level below
# Special cases # Wildcard non-matches
("deep.api.example.com", "*.api.example.com", True), ("example.com", "*.example.com", False), # base domain is not covered
("api.example.com", "*.api.example.com", False), # base not covered by wildcard ("deep.sub.example.com", "*.example.com", False), # too deep
("sub.deep.example.com", "*.deep.example.com", True), # correct: one level below
# Completely different domains # Special cases
("test.other.com", "*.example.com", False), ("deep.api.example.com", "*.api.example.com", True),
] ("api.example.com", "*.api.example.com", False), # base not covered by wildcard
passed = 0 # Completely different domains
failed = 0 ("test.other.com", "*.example.com", False),
]
for domain, san, expected in tests: def test_matches(self):
result = CertUtils.matches(domain, san) for domain, san, expected in self.tests:
if result == expected: with self.subTest(domain=domain, san=san):
print(f"✅ PASS: {domain} vs {san} -> {result}") result = CertUtils.matches(domain, san)
passed += 1 self.assertEqual(
else: result,
print(f"❌ FAIL: {domain} vs {san} -> {result} (expected {expected})") expected,
failed += 1 msg=f"CertUtils.matches({domain!r}, {san!r}) returned {result}, expected {expected}",
)
print(f"\nSummary: {passed} passed, {failed} failed")
if __name__ == "__main__": if __name__ == "__main__":
test_matches() unittest.main()