Browse Source

Adding missing authentication_service tests

framework
Drew Short 6 years ago
parent
commit
cfbfb2eb17
  1. 92
      server/tests/service/test_authentication_service.py
  2. 1
      server/tests/service/test_transformation_service.py

92
server/tests/service/test_authentication_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)

1
server/tests/service/test_transformation_service.py

@ -39,7 +39,6 @@ def test_registering_two_transformers_of_the_same_type():
def _deserializers(self) -> Dict[str, Callable[[db.Model, Any], None]]: def _deserializers(self) -> Dict[str, Callable[[db.Model, Any], None]]:
pass pass
error = None
with pytest.raises(KeyError) as e_info: with pytest.raises(KeyError) as e_info:
error = e_info error = e_info
register_transformer(BadTransformer) register_transformer(BadTransformer)

Loading…
Cancel
Save