mirror of
				https://github.com/laurivosandi/certidude
				synced 2025-10-31 09:29:13 +00:00 
			
		
		
		
	Add basic tests
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -2,6 +2,7 @@ | |||||||
| __pycache__/ | __pycache__/ | ||||||
| *.py[cod] | *.py[cod] | ||||||
| .goutputstream* | .goutputstream* | ||||||
|  | *.swp | ||||||
|  |  | ||||||
| # C extensions | # C extensions | ||||||
| *.so | *.so | ||||||
|   | |||||||
| @@ -474,7 +474,10 @@ def certidude_setup_authority(parent, country, state, locality, organization, or | |||||||
|  |  | ||||||
|     slug = os.path.basename(directory[:-1] if directory.endswith('/') else directory) |     slug = os.path.basename(directory[:-1] if directory.endswith('/') else directory) | ||||||
|     if not slug: |     if not slug: | ||||||
|         raise ValueError("Please supply proper target path") |         raise click.ClickException("Please supply proper target path") | ||||||
|  |     # Make sure slug is valid | ||||||
|  |     if not re.match(r"^[_a-zA-Z0-9]+$", slug): | ||||||
|  |         raise click.ClickException("CA name can contain only alphanumeric and '_' characters") | ||||||
|  |  | ||||||
|     click.echo("CA configuration files are saved to: {}".format(os.path.abspath(slug))) |     click.echo("CA configuration files are saved to: {}".format(os.path.abspath(slug))) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								tests/test_cli.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								tests/test_cli.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | import os | ||||||
|  | from click.testing import CliRunner | ||||||
|  | from certidude.cli import entry_point as cli | ||||||
|  |  | ||||||
|  | runner = CliRunner() | ||||||
|  |  | ||||||
|  | def test_cli(): | ||||||
|  |  | ||||||
|  |     # Authority setup | ||||||
|  |     # TODO: group, parent, common-name, country, state, locality | ||||||
|  |     # {authority,certificate,revocation-list}-lifetime | ||||||
|  |     # organization, organizational-unit | ||||||
|  |     # pkcs11 | ||||||
|  |     # {crl-distribution,ocsp-responder}-url | ||||||
|  |     # email-address | ||||||
|  |     # inbox, outbox | ||||||
|  |     with runner.isolated_filesystem(): | ||||||
|  |         result = runner.invoke(cli, ['setup', 'authority', 'ca']) | ||||||
|  |  | ||||||
|  |         assert not result.exception | ||||||
|  |         # Check whether required files were generated | ||||||
|  |         for f in ('ca_key.pem', 'ca_crt.pem', 'ca_crl.pem', | ||||||
|  |                   'serial', 'openssl.cnf.example'): | ||||||
|  |             assert os.path.isfile(os.path.join('ca', f)) | ||||||
|  |         for d in ('requests', 'revoked', 'signed'): | ||||||
|  |             assert os.path.isdir(os.path.join('ca', d)) | ||||||
|  |  | ||||||
|  | def test_cli_setup_authority_slug_name(): | ||||||
|  |     with runner.isolated_filesystem(): | ||||||
|  |         result = runner.invoke(cli, ['setup', 'authority']) | ||||||
|  |         assert result.exception | ||||||
|  |  | ||||||
|  |         result = runner.invoke(cli, ['setup', 'authority', '""']) | ||||||
|  |         assert result.exception | ||||||
		Reference in New Issue
	
	Block a user