Exemple #1
0
    def test_last_name(self, user_store):
        form = RegistrationForm(user_store=user_store, data={'last_name': ''})
        assert form.errors['last_name'][0] == 'Last name is required', \
            'Should fail if last name is blank'

        form = RegistrationForm(
            user_store=user_store, data={'last_name': 'last name'})
        assert form.errors.get('last_name') is None, \
            'Should be a valid last name'
Exemple #2
0
    def test_form(self, user_store):
        form = RegistrationForm(user_store=user_store, data={
            'email': '*****@*****.**',
            'username': '******',
            'first_name': 'first name',
            'last_name': 'last name',
            'password': '******'})

        assert form.is_valid() is True, 'Should be valid form entries'
Exemple #3
0
    def test_password(self, user_store):
        form = RegistrationForm(user_store=user_store, data={'password': ''})
        assert form.errors['password'][0] == 'Password is required', \
            'Should fail if password is blank'

        form = RegistrationForm(
            user_store=user_store, data={'password': '******'})
        assert form.errors['password'][0] == \
            'Password must be at least 6 characters', \
            'Should fail if password is short'

        form = RegistrationForm(
            user_store=user_store, data={'password': '******'})
        assert form.errors.get('password') is None, \
            'Should be a valid password'
Exemple #4
0
    def __init__(self, email, username, first_name, last_name, password):
        self.email = email
        self.username = username
        self.first_name = first_name
        self.last_name = last_name
        self.password = password

        # Registration form
        self.registration_form = RegistrationForm(user_store=self.user_store,
                                                  data={
                                                      'email': email,
                                                      'username': username,
                                                      'first_name': first_name,
                                                      'last_name': last_name,
                                                      'password': password,
                                                  })
Exemple #5
0
    def test_email(self, user_store):
        form = RegistrationForm(user_store=user_store, data={'email': ''})
        assert form.errors['email'][0] == 'Email address is required', \
            'Should fail if email is blank'

        form = RegistrationForm(
            user_store=user_store, data={'email': 'invalid@email'})
        assert form.errors['email'][0] == 'Email address is invalid', \
            'Should fail if email is invalid'

        mixer.blend(User, email='*****@*****.**')
        form = RegistrationForm(
            user_store=user_store, data={'email': '*****@*****.**'})
        assert form.errors['email'][0] == \
            'Email address is already being used', \
            'Should fail if email is already existed'

        form = RegistrationForm(
            user_store=user_store, data={'email': '*****@*****.**'})
        assert form.errors.get('email') is None, 'Should be a valid email'
Exemple #6
0
    def test_username(self, user_store):
        form = RegistrationForm(user_store=user_store, data={'username': ''})
        assert form.errors['username'][0] == 'Username is required', \
            'Should fail if username is blank'

        form = RegistrationForm(
            user_store=user_store, data={'username': '******'})
        assert form.errors['username'][0] == \
            'Usernames can only contain lowercase letters, \
                numbers, periods, hyphens, and underscores', \
            'Should fail if username is invalid'

        mixer.blend(User, username='******')
        form = RegistrationForm(
            user_store=user_store, data={'username': '******'})
        assert form.errors['username'][0] == \
            'Username is already being used', \
            'Should fail if username is already existed'

        form = RegistrationForm(
            user_store=user_store, data={'username': '******'})
        assert form.errors.get('username') is None, \
            'Should be a valid username'
Exemple #7
0
class RegistrationService():
    """
    Registration domain service
    """

    user_store = UserStore()

    def __init__(self, email, username, first_name, last_name, password):
        self.email = email
        self.username = username
        self.first_name = first_name
        self.last_name = last_name
        self.password = password

        # Registration form
        self.registration_form = RegistrationForm(user_store=self.user_store,
                                                  data={
                                                      'email': email,
                                                      'username': username,
                                                      'first_name': first_name,
                                                      'last_name': last_name,
                                                      'password': password,
                                                  })

    def run(self):
        # Validate form
        if not self.registration_form.is_valid():
            raise InvalidInput

        user_data = self.registration_form.cleaned_data

        # Run and return register command
        return register(user_store=self.user_store,
                        email=user_data.get('email'),
                        username=user_data.get('username'),
                        first_name=user_data.get('first_name'),
                        last_name=user_data.get('last_name'),
                        password=user_data.get('password'))

    def get_registration_form_errors(self):
        return self.registration_form.errors