def _validate_username(username): """Validate the username. Arguments: username (unicode): The proposed username. Returns: None Raises: errors.AccountUsernameInvalid """ try: _validate_unicode(username) _validate_type(username, basestring, accounts.USERNAME_BAD_TYPE_MSG) _validate_length(username, accounts.USERNAME_MIN_LENGTH, accounts.USERNAME_MAX_LENGTH, accounts.USERNAME_BAD_LENGTH_MSG) with override_language('en'): # `validate_username` provides a proper localized message, however the API needs only the English # message by convention. student_forms.validate_username(username) except (UnicodeError, errors.AccountDataBadType, errors.AccountDataBadLength) as username_err: raise errors.AccountUsernameInvalid(text_type(username_err)) except ValidationError as validation_err: raise errors.AccountUsernameInvalid(validation_err.message)
def _validate_username(username): """Validate the username. Arguments: username (unicode): The proposed username. Returns: None Raises: errors.AccountUsernameInvalid """ try: _validate_unicode(username) _validate_type(username, basestring, accounts.USERNAME_BAD_TYPE_MSG) _validate_length( username, accounts.USERNAME_MIN_LENGTH, accounts.USERNAME_MAX_LENGTH, accounts.USERNAME_BAD_LENGTH_MSG ) with override_language('en'): # `validate_username` provides a proper localized message, however the API needs only the English # message by convention. student_forms.validate_username(username) except (UnicodeError, errors.AccountDataBadType, errors.AccountDataBadLength) as username_err: raise errors.AccountUsernameInvalid(text_type(username_err)) except ValidationError as validation_err: raise errors.AccountUsernameInvalid(validation_err.message)
def _validate_username(username): """Validate the username. Arguments: username (unicode): The proposed username. Returns: None Raises: AccountUsernameInvalid """ if not isinstance(username, basestring): raise AccountUsernameInvalid(u"Username must be a string") if len(username) < USERNAME_MIN_LENGTH: raise AccountUsernameInvalid( u"Username '{username}' must be at least {min} characters long". format(username=username, min=USERNAME_MIN_LENGTH)) if len(username) > USERNAME_MAX_LENGTH: raise AccountUsernameInvalid( u"Username '{username}' must be at most {max} characters long". format(username=username, max=USERNAME_MAX_LENGTH)) try: with override_language('en'): # `validate_username` provides a proper localized message, however the API needs only the English # message by convention. student_forms.validate_username(username) except ValidationError as error: raise AccountUsernameInvalid(error.message)
def clean_username(self): """ Validate a string of comma-separated usernames and return a list of usernames. """ usernames_csv_string = self.cleaned_data.get('username') if usernames_csv_string: usernames = usernames_csv_string.split(',') if len(usernames) > self.MAX_USERNAME_COUNT: raise ValidationError( "Too many usernames in a single request - {}. A maximum of {} is allowed".format( len(usernames), self.MAX_USERNAME_COUNT, ) ) for username in usernames: student_forms.validate_username(username) return usernames return usernames_csv_string
def _validate_username(username): """Validate the username. Arguments: username (unicode): The proposed username. Returns: None Raises: AccountUsernameInvalid """ if not isinstance(username, basestring): raise AccountUsernameInvalid(u"Username must be a string") if len(username) < USERNAME_MIN_LENGTH: raise AccountUsernameInvalid( u"Username '{username}' must be at least {min} characters long".format( username=username, min=USERNAME_MIN_LENGTH ) ) if len(username) > USERNAME_MAX_LENGTH: raise AccountUsernameInvalid( u"Username '{username}' must be at most {max} characters long".format( username=username, max=USERNAME_MAX_LENGTH ) ) try: with override_language('en'): # `validate_username` provides a proper localized message, however the API needs only the English # message by convention. student_forms.validate_username(username) except ValidationError as error: raise AccountUsernameInvalid(error.message)