diff --git a/certidude/wrappers.py b/certidude/wrappers.py index 3dc0e07..59b528e 100644 --- a/certidude/wrappers.py +++ b/certidude/wrappers.py @@ -123,12 +123,7 @@ class CertificateAuthorityConfig(object): """ Returns sorted list of CA-s defined in the configuration file. """ - l = [s[3:] for s in self._config if s.startswith("CA_")] - # Sanity check for duplicates (although ConfigParser fails earlier) - if len(l) != len(set(l)): - raise ValueError - return sorted(l) - + return sorted([s[3:] for s in self._config if s.startswith("CA_")]) def pop_certificate_authority(self): def wrapper(func): diff --git a/tests/test_ca.py b/tests/test_ca.py new file mode 100644 index 0000000..c61a763 --- /dev/null +++ b/tests/test_ca.py @@ -0,0 +1,25 @@ +from click.testing import CliRunner +from certidude.cli import entry_point as cli + + +from certidude.wrappers import CertificateAuthorityConfig + +runner = CliRunner() + +def test_ca_config(): + # Authority setup + with runner.isolated_filesystem(): + result = runner.invoke(cli, ['setup', 'authority', 'xca']) + assert not result.exception + + # Load CA + conf = CertificateAuthorityConfig('./xca/openssl.cnf.example') + + assert conf.ca_list == ['xca'] + + ca = conf.instantiate_authority('xca') + + cert = ca.certificate + + assert cert.serial_number == '0000000000000000000000000000000000000001' + # TODO: Figure out a way to properly test cert.signed, cert.expires, cert.digest, etc diff --git a/tests/test_cli.py b/tests/test_cli.py index 93fef10..92b1e4f 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1,6 +1,4 @@ import os -import pwd -import pytest from click.testing import CliRunner from certidude.cli import entry_point as cli