about summary refs log tree commit diff
path: root/tst/test_check.py
diff options
context:
space:
mode:
Diffstat (limited to 'tst/test_check.py')
-rw-r--r--tst/test_check.py28
1 files changed, 12 insertions, 16 deletions
diff --git a/tst/test_check.py b/tst/test_check.py
index c5516e2..4b2c955 100644
--- a/tst/test_check.py
+++ b/tst/test_check.py
@@ -28,7 +28,8 @@ from trustme import CA
 from scadere.check import base64_from_str, check, printable
 from scadere.listen import parse_summary, str_from_base64
 
-SECONDS_AGO = datetime.now(tz=timezone.utc)
+# Times in X.509 certificates are YYYYMMDDHHMMSSZ (RFC 5280)
+SECONDS_AGO = datetime.now(timezone.utc).replace(microsecond=0)
 NEXT_DAY = SECONDS_AGO + timedelta(days=1)
 NEXT_WEEK = SECONDS_AGO + timedelta(days=7)
 
@@ -44,11 +45,6 @@ async def noop(reader, writer):
     await writer.wait_closed()
 
 
-def failed_to_get_cert(summary):
-    """Return if any field is N/A."""
-    return any(field == 'N/A' for field in summary)
-
-
 async def get_cert_summary(netloc, after, ca):
     """Fetch TLS certificate expiration summary for netloc."""
     loop = get_running_loop()
@@ -77,19 +73,19 @@ async def test_check(domain, ca_name, not_after, after, trust_ca):
         summary = await get_cert_summary((domain, port), after,
                                          ca if trust_ca else None)
         if not trust_ca:
-            assert failed_to_get_cert(summary)
-            assert 'self-signed certificate' in str_from_base64(summary[-1])
+            assert summary[0] is None
+            assert 'self-signed certificate' in summary[5]
         elif not_after == SECONDS_AGO:
-            assert failed_to_get_cert(summary)
-            assert 'certificate has expired' in str_from_base64(summary[-1])
+            assert summary[0] is None
+            assert 'certificate has expired' in summary[5]
         elif not printable(ca_name):
-            assert failed_to_get_cert(summary)
-            assert 'control character' in str_from_base64(summary[-1])
+            assert summary[0] is None
+            assert 'control character' in summary[5]
         elif not_after > after:
             assert summary is None
         else:
-            assert summary[0] == SECONDS_AGO.isoformat(timespec='seconds')
-            assert summary[1] == not_after.isoformat(timespec='seconds')
+            assert summary[0] == SECONDS_AGO
+            assert summary[1] == not_after
             assert summary[2] == domain
-            assert int(summary[3]) == port
-            assert str_from_base64(summary[5]) == ca_name
+            assert summary[3] == port
+            assert summary[5] == ca_name