diff options
Diffstat (limited to 'tst/test_check.py')
-rw-r--r-- | tst/test_check.py | 28 |
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 |