1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import pytest
- from flaskbb.auth.services.registration import (EmailUniquenessValidator,
- UsernameRequirements,
- UsernameUniquenessValidator,
- UsernameValidator)
- from flaskbb.core.auth.registration import (UserRegistrationError,
- UserRegistrationInfo)
- from flaskbb.user.models import User
- def test_raises_if_username_too_short():
- requirements = UsernameRequirements(
- min=4, max=100, blacklist=set())
- validator = UsernameValidator(requirements)
- registration = UserRegistrationInfo(
- username='no', password='no', email='no@no.no', group=4, language='no')
- with pytest.raises(UserRegistrationError) as excinfo:
- validator(registration)
- assert excinfo.value.attribute == 'username'
- assert 'must be between' in excinfo.value.reason
- def test_raises_if_username_too_long():
- requirements = UsernameRequirements(
- min=0, max=1, blacklist=set())
- validator = UsernameValidator(requirements)
- registration = UserRegistrationInfo(
- username='no', password='no', email='no@no.no', group=4, language='no')
- with pytest.raises(UserRegistrationError) as excinfo:
- validator(registration)
- assert excinfo.value.attribute == 'username'
- assert 'must be between' in excinfo.value.reason
- def test_raises_if_username_in_blacklist():
- requirements = UsernameRequirements(
- min=1, max=100, blacklist=set(['no']))
- validator = UsernameValidator(requirements)
- registration = UserRegistrationInfo(
- username='no', password='no', email='no@no.no', group=4, language='no')
- with pytest.raises(UserRegistrationError) as excinfo:
- validator(registration)
- assert excinfo.value.attribute == 'username'
- assert 'forbidden username' in excinfo.value.reason
- # fred's back. :(
- def test_raises_if_user_already_registered(Fred):
- validator = UsernameUniquenessValidator(User)
- registration = UserRegistrationInfo(
- username='fred',
- email='fred@fred.fred',
- language='fred',
- group=4,
- password='fred')
- with pytest.raises(UserRegistrationError) as excinfo:
- validator(registration)
- assert excinfo.value.attribute == 'username'
- assert 'already registered' in excinfo.value.reason
- def test_raises_if_user_email_already_registered(Fred):
- validator = EmailUniquenessValidator(User)
- registration = UserRegistrationInfo(
- username='fred',
- email='fred@fred.fred',
- language='fred',
- group=4,
- password='fred')
- with pytest.raises(UserRegistrationError) as excinfo:
- validator(registration)
- assert excinfo.value.attribute == 'email'
- assert 'already registered' in excinfo.value.reason
|