test uppercase character before valid domain name for better error message
This commit is contained in:
@ -409,6 +409,7 @@ class DomainnameOption(Option):
|
||||
extra['_allow_ip'] = allow_ip
|
||||
extra['_allow_without_dot'] = allow_without_dot
|
||||
extra['_domain_re'] = re.compile(r'^[a-z\d][a-z\d\-]*$')
|
||||
extra['_has_upper'] = re.compile('[A-Z]')
|
||||
|
||||
super(DomainnameOption, self).__init__(name, doc, default=default,
|
||||
default_multi=default_multi,
|
||||
@ -452,9 +453,11 @@ class DomainnameOption(Option):
|
||||
|
||||
def _second_level_validation(self, value, warnings_only):
|
||||
def _valid_char(val):
|
||||
if self._get_extra('_has_upper').search(val):
|
||||
raise ValueError(_('some characters are uppercase'))
|
||||
if not self._get_extra('_domain_re').search(val):
|
||||
if warnings_only:
|
||||
raise ValueError(_('same characters may cause problems'))
|
||||
raise ValueError(_('some characters may cause problems'))
|
||||
else:
|
||||
raise ValueError(_('invalid domainname'))
|
||||
#not for IP
|
||||
|
Reference in New Issue
Block a user