checkcert/tests/test_checkcert.py
Alex Kelly c6d657952d test: fix separator testing issues
test: add coverage for cert-not-in-san case
2021-10-04 14:47:45 -04:00

85 lines
2.8 KiB
Python

""" Tests to validate checkcert"""
from click.testing import CliRunner
from checkcert.checkcert import main as cert_main
from checkcert.checkcert import __version__ as cert_version
runner = CliRunner()
def test_main():
"""validate the core function returns correctly for:
a domain
a domain and a port
no names specified
a list of domains
a list of domains with a port specified on one
"""
response = runner.invoke(cert_main, ["www.franklin.edu"])
assert response.exit_code == 0
response = runner.invoke(cert_main, ["www.franklin.edu:443"])
assert response.exit_code == 0
response = runner.invoke(cert_main, ["www.franklin.edu", "--no-color"])
assert response.exit_code == 0
response = runner.invoke(cert_main, ["www.franklin.edu", "library.franklin.edu"])
assert response.exit_code == 0
response = runner.invoke(cert_main, ["www.franklin.edu", "--valid"])
assert response.exit_code == 0
response = runner.invoke(
cert_main, ["www.franklin.edu:443", "library.franklin.edu"]
)
assert response.exit_code == 0
def test_version():
"""get the version output and ensure it matches the version var"""
response = runner.invoke(cert_main, ["--version"])
assert response.exit_code == 0
assert cert_version in response.output
def test_dump():
"""verify that --dump outputs data"""
response = runner.invoke(cert_main, ["www.franklin.edu", "--dump"])
assert response.exit_code == 0
assert "www.franklin.edu" in response.output
def test_san():
"""verify --san outputs correctly"""
response = runner.invoke(cert_main, ["www.franklin.edu", "--san"])
assert response.exit_code == 0
def test_san_only():
"""verify --san outputs correctly"""
check_domain = "example.com"
response = runner.invoke(cert_main, ["--san-only", check_domain])
assert response.exit_code == 0
sep_string = ","
response = runner.invoke(
cert_main, ["--san-only", "--sep", sep_string, check_domain]
)
assert response.exit_code == 0
assert sep_string in response.output
response = runner.invoke(
cert_main, ["--san-only", "--sep", sep_string, "--pre", check_domain]
)
assert response.exit_code == 0
assert response.output.startswith(sep_string)
response = runner.invoke(
cert_main, ["--san-only", "--sep", sep_string, "--pre", "cs.franklin.edu"]
)
assert response.exit_code == 0
assert response.output.startswith(sep_string)
def test_bad_cert():
"""verify an expired certificate works"""
response = runner.invoke(cert_main, ["support.bluequill.com", "--san"])
assert response.exit_code == 0
def test_from_file():
"""Verify loading domains from file"""
response = runner.invoke(cert_main, ["--filename", "ci/test_domains.txt"])
assert response.exit_code == 0