555 with self.temporary_appobjects(DummyBeforeHook): |
555 with self.temporary_appobjects(DummyBeforeHook): |
556 req = self.request() |
556 req = self.request() |
557 req.create_entity('Affaire', ref=u'AFF01') |
557 req.create_entity('Affaire', ref=u'AFF01') |
558 req.create_entity('Affaire', ref=u'AFF02') |
558 req.create_entity('Affaire', ref=u'AFF02') |
559 req.execute('SET A duration 10 WHERE A is Affaire') |
559 req.execute('SET A duration 10 WHERE A is Affaire') |
|
560 |
|
561 |
|
562 def test_user_friendly_error(self): |
|
563 from cubicweb.entities.adapters import IUserFriendlyUniqueTogether |
|
564 class MyIUserFriendlyUniqueTogether(IUserFriendlyUniqueTogether): |
|
565 __select__ = IUserFriendlyUniqueTogether.__select__ & is_instance('Societe') |
|
566 def raise_user_exception(self): |
|
567 raise ValidationError(self.entity.eid, {'hip': 'hop'}) |
|
568 |
|
569 with self.temporary_appobjects(MyIUserFriendlyUniqueTogether): |
|
570 req = self.request() |
|
571 s = req.create_entity('Societe', nom=u'Logilab', type=u'ssll', cp=u'75013') |
|
572 self.commit() |
|
573 with self.assertRaises(ValidationError) as cm: |
|
574 req.create_entity('Societe', nom=u'Logilab', type=u'ssll', cp=u'75013') |
|
575 self.assertEqual(cm.exception.errors, {'hip': 'hop'}) |
|
576 self.rollback() |
|
577 req.create_entity('Societe', nom=u'Logilab', type=u'ssll', cp=u'31400') |
|
578 with self.assertRaises(ValidationError) as cm: |
|
579 s.cw_set(cp=u'31400') |
|
580 self.assertEqual(cm.exception.entity, s.eid) |
|
581 self.assertEqual(cm.exception.errors, {'hip': 'hop'}) |
|
582 self.rollback() |
|
583 |
560 |
584 |
561 class SchemaDeserialTC(CubicWebTC): |
585 class SchemaDeserialTC(CubicWebTC): |
562 |
586 |
563 appid = 'data-schemaserial' |
587 appid = 'data-schemaserial' |
564 |
588 |