Assert correct account name in supplied registration form
darcs-hash:20080904193737-86b55-798544a0b023580ee2009155d727ce52f64fdce9.gz
This commit is contained in:
@@ -29,21 +29,23 @@ from jcl.lang import Lang
|
||||
class FieldError(Exception):
|
||||
"""Error raised when error exists on Jabber Data Form fields"""
|
||||
|
||||
def __init__(self, field, message="", message_property=None, lang_class=Lang.en):
|
||||
def __init__(self, field,
|
||||
message_property=None, lang_class=Lang.en,
|
||||
detailed_message=None):
|
||||
Exception.__init__(self)
|
||||
self.field = field
|
||||
self.lang_class = lang_class
|
||||
self.message_property = message_property
|
||||
self.message = message
|
||||
self.detailed_message = detailed_message
|
||||
|
||||
def __str__(self):
|
||||
if self.message_property is None \
|
||||
or not hasattr(self.lang_class, self.message_property):
|
||||
return self.lang_class.field_error % (str(self.field), self.message)
|
||||
else:
|
||||
return self.lang_class.field_error % \
|
||||
(str(self.field),
|
||||
str(getattr(self.lang_class, self.message_property)))
|
||||
full_message = ""
|
||||
if self.detailed_message is not None:
|
||||
full_message = self.detailed_message
|
||||
elif self.message_property is not None \
|
||||
and hasattr(self.lang_class, self.message_property):
|
||||
full_message = str(getattr(self.lang_class, self.message_property))
|
||||
return self.lang_class.field_error % (str(self.field), full_message)
|
||||
|
||||
class MandatoryFieldError(FieldError):
|
||||
"""Error raised when a mandatory field in a Form is not supplied"""
|
||||
@@ -54,5 +56,7 @@ class MandatoryFieldError(FieldError):
|
||||
class NotWellFormedFieldError(FieldError):
|
||||
"""Error raised when a supplied field in a Form is not well formed"""
|
||||
|
||||
def __init__ (self, field):
|
||||
FieldError.__init__(self, field, message_property="not_well_formed_field")
|
||||
def __init__ (self, field, detailed_message=None):
|
||||
FieldError.__init__(self, field,
|
||||
message_property="not_well_formed_field",
|
||||
detailed_message=detailed_message)
|
||||
|
||||
@@ -70,7 +70,8 @@ class SetRegisterHandler(object):
|
||||
info_query, lang_class)
|
||||
if not self.field_name_regexp.match(form["name"].value):
|
||||
return self.handle_error(\
|
||||
NotWellFormedFieldError("name"),
|
||||
NotWellFormedFieldError("name",
|
||||
lang_class.arobase_in_name_forbidden),
|
||||
info_query, lang_class)
|
||||
return None
|
||||
|
||||
|
||||
@@ -92,6 +92,7 @@ class Lang:
|
||||
field_error = u"Error with '%s' field: %s"
|
||||
mandatory_field = u"required field"
|
||||
not_well_formed_field = u"not well formed field"
|
||||
arobase_in_name_forbidden = u"'@' is not allowed in account's name"
|
||||
|
||||
field_chat_action = u"Action when state is 'Free For Chat'"
|
||||
field_online_action = u"Action when state is 'Online'"
|
||||
@@ -266,8 +267,10 @@ class Lang:
|
||||
u"à jour"
|
||||
update_account_message_body = u"Compte mis à jour"
|
||||
|
||||
field_error = u"Erreur dans le champs '%s': %s"
|
||||
mandatory_field = u"%s est requis"
|
||||
not_well_formed_field = u"Le champs %s n'est pas acceptable"
|
||||
arobase_in_name_forbidden = u"Le nom du compte ne peux contenir le charactère '@'"
|
||||
|
||||
field_chat_action = u"Action lorsque l'état est 'Free For Chat'"
|
||||
field_online_action = u"Action lorsque l'état est 'Online'"
|
||||
|
||||
@@ -94,6 +94,7 @@ class Language_TestCase(unittest.TestCase):
|
||||
self.assertNotEquals(self.lang_class.field_error % ("", ""), None)
|
||||
self.assertNotEquals(self.lang_class.mandatory_field, None)
|
||||
self.assertNotEquals(self.lang_class.not_well_formed_field, None)
|
||||
self.assertNotEquals(self.lang_class.arobase_in_name_forbidden, None)
|
||||
|
||||
self.assertNotEquals(self.lang_class.field_chat_action, None)
|
||||
self.assertNotEquals(self.lang_class.field_online_action, None)
|
||||
|
||||
Reference in New Issue
Block a user