Drew Short
6 years ago
2 changed files with 92 additions and 1 deletions
-
92server/tests/service/test_authentication_service.py
-
1server/tests/service/test_transformation_service.py
@ -0,0 +1,92 @@ |
|||
from datetime import datetime, timedelta |
|||
|
|||
import pytest |
|||
from mock import patch, MagicMock |
|||
from nacl.exceptions import InvalidkeyError |
|||
|
|||
from atheneum import errors |
|||
from atheneum.model import User, UserToken |
|||
from atheneum.service.authentication_service import ( |
|||
validate_password_strength, |
|||
is_valid_token, |
|||
is_valid_password |
|||
) |
|||
|
|||
service_module = 'atheneum.service.authentication_service' |
|||
|
|||
|
|||
def test_validate_password_strength_happy_path(): |
|||
valid_password = "HorseStapleBattery9" |
|||
assert valid_password == validate_password_strength(valid_password) |
|||
|
|||
|
|||
def test_validate_password_strength_length_failure(): |
|||
invalid_password = "TooShor" |
|||
|
|||
with pytest.raises(errors.ValidationError) as e_info: |
|||
error = e_info |
|||
validate_password_strength(invalid_password) |
|||
|
|||
assert error is not None |
|||
|
|||
|
|||
def test_validate_password_strength_uppercase_failure(): |
|||
invalid_password = "NOUPPERCASE9" |
|||
|
|||
with pytest.raises(errors.ValidationError) as e_info: |
|||
error = e_info |
|||
validate_password_strength(invalid_password) |
|||
|
|||
assert error is not None |
|||
|
|||
|
|||
def test_validate_password_strength_lowercase_failure(): |
|||
invalid_password = "NOLOWERCASE9" |
|||
|
|||
with pytest.raises(errors.ValidationError) as e_info: |
|||
error = e_info |
|||
validate_password_strength(invalid_password) |
|||
|
|||
assert error is not None |
|||
|
|||
|
|||
def test_validate_password_strength_number_failure(): |
|||
invalid_password = "NoNumber" |
|||
|
|||
with pytest.raises(errors.ValidationError) as e_info: |
|||
error = e_info |
|||
validate_password_strength(invalid_password) |
|||
|
|||
assert error is not None |
|||
|
|||
|
|||
@patch(service_module + '.pwhash.verify') |
|||
def test_is_valid_password_invalid_key_error( |
|||
mock_pwhash_verify: MagicMock): |
|||
user = User() |
|||
user.password_hash = '' |
|||
mock_pwhash_verify.side_effect = InvalidkeyError() |
|||
assert not is_valid_password(user, '') |
|||
|
|||
|
|||
def test_is_valid_token_happy_path(): |
|||
user_token = UserToken() |
|||
user_token.enabled = True |
|||
assert is_valid_token(user_token) |
|||
|
|||
|
|||
def test_is_valid_token_no_token(): |
|||
assert not is_valid_token(None) |
|||
|
|||
|
|||
def test_is_valid_token_disabled(): |
|||
user_token = UserToken() |
|||
user_token.enabled = False |
|||
assert not is_valid_token(user_token) |
|||
|
|||
|
|||
def test_is_valid_token_expired(): |
|||
user_token = UserToken() |
|||
user_token.enabled = True |
|||
user_token.expiration_time = datetime.now() - timedelta(weeks=1) |
|||
assert not is_valid_token(user_token) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue