Merge pull request #13 from cottonbeckfield/pytests

Adding pytests
pull/15/head 1.0
Cotton Beckfield 2020-01-20 03:00:36 -08:00 committed by GitHub
commit fea78e9c83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 49 additions and 5 deletions

View File

@ -12,7 +12,7 @@ jobs:
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
python-version: 2.7
- name: Install dependencies
run: |
python -m pip install --upgrade pip

3
.gitignore vendored
View File

@ -1,3 +1,6 @@
dist/*
__*
CSR_Generator.egg-info/*
*.log
*.csr
*.key

View File

@ -3,7 +3,8 @@
Generate a key, self-signed certificate, and certificate request.
## Information
You'll notice there is only one version of python scripts. This can be used with both python(2.7) and python(3.5).
This script is for Python 2.7. Due to how the input() function has changed between python2 and python3, this
script is not backwards compatible at this time.
## Installation / Dependencies
The following modules are required:

View File

@ -8,14 +8,14 @@
# Usage: csrgen -n <hostname> -s <san0> <san1>
#
# If you want to generate multiple CSRs, you can use the -f command to
# feed in a .yaml file via the CLI. See the example sample.yaml in this
# feed in a .yaml file via the CLI. See the example samples/sample-file.yaml in this
# repository for examples.
#
# If you want to predefine some of your CSR attributes, you can use the -u command
# to feed in a .yaml file via the CLI. See the example csr.yaml in this repository
# to feed in a .yaml file via the CLI. See the example samples/csr-sample-unattended.yaml in this repository
# for examples.
#
# Author: Courtney Cotton <cotton@cottoncourtney.com> 06-25-2014, Updated 8-9-2017
# Author: Cotton Beckfield <cotton@cottonbeckfield.com> 06-25-2014, Updated 01-20-2020
# Author: Ben Mz <bmz@prohacktive.io> Updated 06-15-2018
# Libraries/Modules
@ -295,6 +295,7 @@ class Authority(Certificate):
def main(argv):
print(argv)
# Define default values
VERBOSE = False
LOG_FILE = "./certGen.log"

BIN
csrgen.pyc Normal file

Binary file not shown.

39
csrgen_test.py Normal file
View File

@ -0,0 +1,39 @@
import pytest
import csrgen
import logging
def import_logging():
logger = logging.getLogger('certgen')
hdlr = logging.handlers.TimedRotatingFileHandler("csrgen_test.log", when="midnight", backupCount=3)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel("WARN")
return logger
# Test that if a file is supplied (../samples/sample-file.yaml) the code does #
# exit with an error.
def test_load_nodes():
logger = import_logging()
cert = csrgen.Certificate(logger, {'verbose': False, 'size': '2048', 'C': 'Te', 'ST': 'PACA', 'L': 'Gap', 'O': 'ProHacktive SAS', 'OU': 'prohacktive.io'})
result = cert.loadNodes("samples/sample-file.yaml")
def test_load_defaults():
logger = import_logging()
cert = csrgen.Certificate(logger, {'verbose': False, 'size': '2048'})
result = cert.loadDefaults("samples/csr-sample-unattended.yaml")
def test_generate_csr():
logger = import_logging()
cert = csrgen.Certificate(logger, {'verbose': False, 'size': '2048', 'hostname': 'test-csr.edu', 'sans': 'test-csr-sans.edu',
'C': 'Te', 'ST': 'PACA', 'L': 'Gap', 'O': 'ProHacktive SAS', 'OU': 'prohacktive.io'})
result = cert.generateCSR()
# Test that if a file is supplied and a ../samples/csr-sample-unattended.yaml is supplied
# that the code does not exit.
# Test that if someone supplies -n the code does not exit.
# Test that if someone supplies a -n and a -s that the code does not exit.