Skip to content

Commit

Permalink
Merge pull request #13 from cottonbeckfield/pytests
Browse files Browse the repository at this point in the history
Adding pytests
  • Loading branch information
cottonbeckfield authored Jan 20, 2020
2 parents 65fe80c + 98f7bb3 commit fea78e9
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 5 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/pythonapp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
dist/*
__*
CSR_Generator.egg-info/*
*.log
*.csr
*.key
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
7 changes: 4 additions & 3 deletions csr_tools/csrgen.py → csrgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 <[email protected]> Updated 06-15-2018

# Libraries/Modules
Expand Down Expand Up @@ -295,6 +295,7 @@ def initialize(self):


def main(argv):
print(argv)
# Define default values
VERBOSE = False
LOG_FILE = "./certGen.log"
Expand Down
Binary file added csrgen.pyc
Binary file not shown.
39 changes: 39 additions & 0 deletions csrgen_test.py
Original file line number Diff line number Diff line change
@@ -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.
File renamed without changes.
File renamed without changes.

0 comments on commit fea78e9

Please sign in to comment.