Changeset - dbc7f420acad
[Not reviewed]
0 2 0
Branko Majic (branko) - 6 years ago 2018-04-05 23:08:17
branko@majic.rs
GC-20: Updated status command to have explicit message if no server or client certificates have been issued:

- Updated the statuc command to inform user that no server or client
certificates have been issued if so (instead of just showing empty
section).
- Implemented unit tests.
2 files changed with 54 insertions and 0 deletions:
0 comments (0 inline, 0 general)
gimmecert/commands.py
Show inline comments
 
@@ -393,6 +393,10 @@ def status(stdout, stderr, project_directory):
 
        print("    DNS: %s" % ", ".join(gimmecert.utils.get_dns_names(certificate)), file=stdout)
 
        print("    Private key: .gimmecert/server/%s" % certificate_file.replace('.cert.pem', '.key.pem'), file=stdout)
 
        print("    Certificate: .gimmecert/server/%s" % certificate_file, file=stdout)
 
    else:
 
        # Separator.
 
        print("", file=stdout)
 
        print("No server certificates have been issued.", file=stdout)
 

	
 
    # Section separator.
 
    print("\n", file=stdout)
 
@@ -411,5 +415,9 @@ def status(stdout, stderr, project_directory):
 
        print("    Validity: %s" % gimmecert.utils.date_range_to_str(certificate.not_valid_before, certificate.not_valid_after), file=stdout)
 
        print("    Private key: .gimmecert/client/%s" % certificate_file.replace('.cert.pem', '.key.pem'), file=stdout)
 
        print("    Certificate: .gimmecert/client/%s" % certificate_file, file=stdout)
 
    else:
 
        # Separator.
 
        print("", file=stdout)
 
        print("No client certificates have been issued.", file=stdout)
 

	
 
    return ExitCode.SUCCESS
tests/test_commands.py
Show inline comments
 
@@ -824,3 +824,49 @@ def test_status_reports_client_certificate_information(tmpdir):
 
    assert myclient2_validity == "    Validity: 2018-03-01 00:00:00 UTC - 2019-01-01 00:15:00 UTC"
 
    assert myclient2_private_key_path == "    Private key: .gimmecert/client/myclient2.key.pem"
 
    assert myclient2_certificate_path == "    Certificate: .gimmecert/client/myclient2.cert.pem"
 

	
 

	
 
def test_status_reports_no_server_certificates_were_issued(tmpdir):
 
    depth = 1
 

	
 
    stdout_stream = io.StringIO()
 
    stderr_stream = io.StringIO()
 

	
 
    # Just create some sample data, but no server certificates.
 
    with freeze_time('2018-01-01 00:15:00'):
 
        gimmecert.commands.init(io.StringIO(), io.StringIO(), tmpdir.strpath, tmpdir.basename, depth)
 
        gimmecert.commands.client(io.StringIO(), io.StringIO(), tmpdir.strpath, 'myclient1')
 
        gimmecert.commands.client(io.StringIO(), io.StringIO(), tmpdir.strpath, 'myclient2')
 

	
 
    status_code = gimmecert.commands.status(stdout_stream, stderr_stream, tmpdir.strpath)
 

	
 
    stdout = stdout_stream.getvalue()
 
    stdout_lines = stdout.split("\n")
 
    stderr = stderr_stream.getvalue()
 

	
 
    assert status_code == gimmecert.commands.ExitCode.SUCCESS
 
    assert stderr == ""
 
    assert "Server certificates\n-------------------\n\nNo server certificates have been issued." in stdout, "Missing message about no server certificates being issued:\n%s" % stdout
 

	
 

	
 
def test_status_reports_no_client_certificates_were_issued(tmpdir):
 
    depth = 1
 

	
 
    stdout_stream = io.StringIO()
 
    stderr_stream = io.StringIO()
 

	
 
    # Just create some sample data, but no client certificates.
 
    with freeze_time('2018-01-01 00:15:00'):
 
        gimmecert.commands.init(io.StringIO(), io.StringIO(), tmpdir.strpath, tmpdir.basename, depth)
 
        gimmecert.commands.server(io.StringIO(), io.StringIO(), tmpdir.strpath, 'myserver1', None)
 
        gimmecert.commands.server(io.StringIO(), io.StringIO(), tmpdir.strpath, 'myserver2', None)
 

	
 
    status_code = gimmecert.commands.status(stdout_stream, stderr_stream, tmpdir.strpath)
 

	
 
    stdout = stdout_stream.getvalue()
 
    stdout_lines = stdout.split("\n")
 
    stderr = stderr_stream.getvalue()
 

	
 
    assert status_code == gimmecert.commands.ExitCode.SUCCESS
 
    assert stderr == ""
 
    assert "Client certificates\n-------------------\n\nNo client certificates have been issued." in stdout, "Missing message about no client certificates being issued:\n%s" % stdout
0 comments (0 inline, 0 general)