421 # XXX will fail with python -O |
421 # XXX will fail with python -O |
422 self.assertRaises(AssertionError, req.create_entity, |
422 self.assertRaises(AssertionError, req.create_entity, |
423 'EmailAddress', address=u'a@b.fr') |
423 'EmailAddress', address=u'a@b.fr') |
424 |
424 |
425 def test_multiple_edit_set_attributes(self): |
425 def test_multiple_edit_set_attributes(self): |
426 """make sure edited_attributes doesn't get cluttered |
426 """make sure cw_edited doesn't get cluttered |
427 by previous entities on multiple set |
427 by previous entities on multiple set |
428 """ |
428 """ |
429 # local hook |
429 # local hook |
430 class DummyBeforeHook(Hook): |
430 class DummyBeforeHook(Hook): |
431 _test = self # keep reference to test instance |
431 _test = self # keep reference to test instance |
432 __regid__ = 'dummy-before-hook' |
432 __regid__ = 'dummy-before-hook' |
433 __select__ = Hook.__select__ & is_instance('Affaire') |
433 __select__ = Hook.__select__ & is_instance('Affaire') |
434 events = ('before_update_entity',) |
434 events = ('before_update_entity',) |
435 def __call__(self): |
435 def __call__(self): |
436 # invoiced attribute shouldn't be considered "edited" before the hook |
436 # invoiced attribute shouldn't be considered "edited" before the hook |
437 self._test.failIf('invoiced' in self.entity.edited_attributes, |
437 self._test.failIf('invoiced' in self.entity.cw_edited, |
438 'edited_attributes cluttered by previous update') |
438 'cw_edited cluttered by previous update') |
439 self.entity['invoiced'] = 10 |
439 self.entity.cw_edited['invoiced'] = 10 |
440 with self.temporary_appobjects(DummyBeforeHook): |
440 with self.temporary_appobjects(DummyBeforeHook): |
441 req = self.request() |
441 req = self.request() |
442 req.create_entity('Affaire', ref=u'AFF01') |
442 req.create_entity('Affaire', ref=u'AFF01') |
443 req.create_entity('Affaire', ref=u'AFF02') |
443 req.create_entity('Affaire', ref=u'AFF02') |
444 req.execute('SET A duration 10 WHERE A is Affaire') |
444 req.execute('SET A duration 10 WHERE A is Affaire') |