Je rencontre des problèmes en se moquant d'un objet pour tester un descripteur.Python: problèmes de se moquer d'une instance
C'est le code du descripteur:
class Text(object):
def __init__(self, default_value=u'', validators=[]):
self.validators = validators
self._value = default_value
def __set__(self, instance, value):
for validator in self.validators:
validator(value).validate()
c'est le test:
def test_text_validator_raises_exception(self):
validator = Mock()
validator.validate.side_effect = ValidationError()
text = Text(validators=[validator])
self.assertRaises(ValidationError, text__set__, (text, ''))
Edit: La fonction a() dans le code, je l'ai fait une faute de frappe lors de la copie le code.
L'erreur que j'ai eu était que set() prend exactement 3 arguments. Mais j'ai remarqué dans les réponses que je ne devrais pas passer un tuple comme dernier argument.
Mais cela ne fonctionne pas non plus lorsque j'ai appelé validator (''). Validate() dans la fonction de test.
Et quel est votre problème? – khachik
Désolé, aurait dû être plus clair. – Pickels