Adds option to restrict certificate expiration dates to weekdays. (#453)

* Adding ability to restrict certificate creation to weekdays.

* Ensuring that we test for weekends.
This commit is contained in:
kevgliss
2016-10-15 00:04:35 -07:00
committed by GitHub
parent 1b861baf0a
commit dcb18a57c4
11 changed files with 97 additions and 52 deletions

View File

@ -46,6 +46,8 @@ LEMUR_DEFAULT_LOCATION = 'Los Gatos'
LEMUR_DEFAULT_ORGANIZATION = 'Example, Inc.'
LEMUR_DEFAULT_ORGANIZATIONAL_UNIT = 'Example'
LEMUR_ALLOW_WEEKEND_EXPIRATION = False
# Database
# modify this if you are not using a local database

View File

@ -5,7 +5,7 @@ import json
from lemur.certificates.views import * # noqa
from .vectors import VALID_ADMIN_HEADER_TOKEN, VALID_USER_HEADER_TOKEN, CSR_STR, \
from lemur.tests.vectors import VALID_ADMIN_HEADER_TOKEN, VALID_USER_HEADER_TOKEN, CSR_STR, \
INTERNAL_VALID_LONG_STR, INTERNAL_VALID_SAN_STR, PRIVATE_KEY_STR

View File

@ -0,0 +1,17 @@
import arrow
from freezegun import freeze_time
def test_convert_validity_years(session):
from lemur.common.missing import convert_validity_years
with freeze_time("2016-01-01"):
data = convert_validity_years(dict(validity_years=2))
assert data['validity_start'] == arrow.utcnow().date().isoformat()
assert data['validity_end'] == arrow.utcnow().replace(years=+2).date().isoformat()
with freeze_time("2015-01-10"):
data = convert_validity_years(dict(validity_years=1))
assert data['validity_end'] == arrow.utcnow().replace(years=+1, days=-2).date().isoformat()

View File

@ -1,29 +1,32 @@
from marshmallow.exceptions import ValidationError
import pytest
from datetime import datetime
from .vectors import PRIVATE_KEY_STR
from marshmallow.exceptions import ValidationError
def test_private_key():
def test_private_key(session):
from lemur.common.validators import private_key
try:
private_key(PRIVATE_KEY_STR)
assert True
except ValidationError:
assert False, "failed to validate private key as a bytes object"
private_key(PRIVATE_KEY_STR)
private_key(PRIVATE_KEY_STR.decode('utf-8'))
def test_private_key_str_object():
from lemur.common.validators import private_key
try:
private_key(PRIVATE_KEY_STR.decode('utf-8'))
assert True
except ValidationError:
assert False, "failed to validate private key as a str object"
def test_private_key_invalid():
from lemur.common.validators import private_key
try:
with pytest.raises(ValidationError):
private_key('invalid_private_key')
assert False, "invalid private key should have raised an exception"
except ValidationError:
assert True
def test_dates(session):
from lemur.common.validators import dates
dates(dict(validity_start=datetime(2016, 1, 1), validity_end=datetime(2016, 1, 5)))
with pytest.raises(ValidationError):
dates(dict(validity_start=datetime(2016, 1, 1)))
with pytest.raises(ValidationError):
dates(dict(validity_end=datetime(2016, 1, 1)))
with pytest.raises(ValidationError):
dates(dict(validity_start=datetime(2016, 1, 5), validity_end=datetime(2016, 1, 1)))
with pytest.raises(ValidationError):
dates(dict(validity_start=datetime(2016, 1, 1), validity_end=datetime(2016, 1, 10)))