[lc_ldap/*] (more) pylint compliance

This commit is contained in:
Antoine Durand-Gasselin 2010-08-26 14:21:36 +00:00
parent db8b27e6a5
commit a36bafa021
3 changed files with 35 additions and 23 deletions

View file

@ -30,16 +30,25 @@
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import re
from unicodedata import normalize
def validate_name(value, more_chars=""):
"""Valide un nom: ie un unicode qui contient lettres, espaces et
apostrophes, et éventuellement des caractères additionnels"""
return re.match("[A-Za-z][-' A-Za-z%s]*" % more_chars,
normalize('NFKD', decode(a)).encode('ASCII', 'ignore'))
normalize('NFKD', value).encode('ASCII', 'ignore'))
def validate_mac(value):
"""Vérifie qu'une adresse mac est valide"""
return True
class Attr:
legend = "Human-readable description of attribute"
singlevalue = None
optional = None
def validate(self, values, uldif):
"validates"
self._check_cardinality(values)
@ -52,19 +61,19 @@ class Attr:
"normalizes"
return values
def self._check_cardinality(values):
def _check_cardinality(self, values):
"""Vérifie qu'il y a un nombre correct de valeur =1, <=1, {0,1},
etc..."""
if self.singlevalue and len(vals) > 1:
raise ValueError(u'%s doit avoir au maximum une valeur (affecte %s)' % self.__class__, values)
if not self.optional and len(vals) == 0:
raise ValueError('%s doit avoir au moins une valeur' % attr)
if self.singlevalue and len(values) > 1:
raise ValueError(u'%s doit avoir au maximum une valeur (affecte %s)' % self.__class__, values)
if not self.optional and len(values) == 0:
raise ValueError('%s doit avoir au moins une valeur' % self.__class__)
def _check_type(self, values):
"""Vérifie que les valeurs ont le bon type (nom est un mot, tel
est un nombre, etc...)"""
for v in values:
assert isunicode(v)
assert isinstance(v, unicode)
def _check_uniqueness(self, values):
"""Vérifie l'unicité dans la base de la valeur (mailAlias, chbre,
@ -89,18 +98,20 @@ class nom(Attr):
singlevalue = True
optional = False
legend = "Nom"
def _check_type(self, values): return validate_name()
def _check_type(self, values):
return [ validate_name(v) for v in values]
def normalize(self, values):
return [ values.strip().capitalize() for v in values ]
def normalize(self, values, uldif):
return [ v.strip().capitalize() for v in values ]
class prenom(Attr):
singlevalue = True
optional = False
legend = u"Prénom"
def _check_type(self, values): return validate_name()
def _check_type(self, values):
return [ validate_name(v) for v in values ]
def normalize(self, values):
def normalize(self, values, uldif):
return [ values.strip().capitalize() for v in values ]
class tel(Attr):
@ -108,7 +119,7 @@ class tel(Attr):
optional = False
legend = u"Téléphone"
def normalize(self, value):
def normalize(self, value, uldif):
return value # XXX - To implement
class paiement(Attr):
@ -116,7 +127,7 @@ class paiement(Attr):
optional = True
legend = u"Paiement"
def normalize(self, values):
def normalize(self, values, uldif):
return values # XXX - To implement
class carteEtudiant(Attr):
@ -212,7 +223,7 @@ class cid(Attr):
class responsable(Attr):
singlevalue = True
optional =True
optional = True
legend = u"Responsable du club"