[attributs] Fonctions de test d'egalité des attributs

This commit is contained in:
Valentin Samir 2014-02-23 15:30:04 +01:00
parent 626851baca
commit f5347106c7

View file

@ -287,9 +287,12 @@ class Attr(object):
def __ne__(self, obj): def __ne__(self, obj):
return not self == obj return not self == obj
def __eq__(self, item): def __eq__(self, item):
if isinstance(item, self.__class__): if isinstance(item, self.__class__):
return str(self) == str(item) return str(self) == str(item)
elif isinstance(item, Attr) and item.python_type == self.python_type:
return item.value == self.value
elif self.python_type and isinstance(item, self.python_type): elif self.python_type and isinstance(item, self.python_type):
return self.value == item return self.value == item
elif isinstance(item, str): elif isinstance(item, str):
@ -306,7 +309,10 @@ class Attr(object):
return self.value.__cmp__(obj) return self.value.__cmp__(obj)
def __nonzero__(self): def __nonzero__(self):
return self.value.__nonzero__() if self.value:
return True
else:
return False
def parse_value(self, val): def parse_value(self, val):
"""Transforme l'attribut pour travailler avec notre validateur """Transforme l'attribut pour travailler avec notre validateur
@ -719,6 +725,7 @@ class solde(Attr):
class dnsAttr(Attr): class dnsAttr(Attr):
category = 'dns' category = 'dns'
ldap_name = "dnsAttr" ldap_name = "dnsAttr"
python_type = unicode
def parse_value(self, val): def parse_value(self, val):
val = val.lower() val = val.lower()