337 # self.create_user('toto') |
337 # self.create_user('toto') |
338 # finally: |
338 # finally: |
339 # self.set_debug(False) |
339 # self.set_debug(False) |
340 # print 'test time: %.3f (time) %.3f (cpu)' % ((time() - t), clock() - c) |
340 # print 'test time: %.3f (time) %.3f (cpu)' % ((time() - t), clock() - c) |
341 |
341 |
|
342 def test_delete_if_singlecard1(self): |
|
343 note = self.add_entity('Affaire') |
|
344 p1 = self.add_entity('Personne', nom=u'toto') |
|
345 self.execute('SET A todo_by P WHERE A eid %(x)s, P eid %(p)s', |
|
346 {'x': note.eid, 'p': p1.eid}) |
|
347 rset = self.execute('Any P WHERE A todo_by P, A eid %(x)s', |
|
348 {'x': note.eid}) |
|
349 self.assertEquals(len(rset), 1) |
|
350 p2 = self.add_entity('Personne', nom=u'tutu') |
|
351 self.execute('SET A todo_by P WHERE A eid %(x)s, P eid %(p)s', |
|
352 {'x': note.eid, 'p': p2.eid}) |
|
353 rset = self.execute('Any P WHERE A todo_by P, A eid %(x)s', |
|
354 {'x': note.eid}) |
|
355 self.assertEquals(len(rset), 1) |
|
356 self.assertEquals(rset.rows[0][0], p2.eid) |
|
357 |
342 |
358 |
343 class DataHelpersTC(RepositoryBasedTC): |
359 class DataHelpersTC(RepositoryBasedTC): |
344 |
360 |
345 def setUp(self): |
361 def setUp(self): |
346 """ called before each test from this class """ |
362 """ called before each test from this class """ |
480 self.execute('SET N ecrit_par Y WHERE N type "T", Y nom "toto"') |
496 self.execute('SET N ecrit_par Y WHERE N type "T", Y nom "toto"') |
481 self.assertEquals(self.called, [(eidn, 'ecrit_par', eidp,)]) |
497 self.assertEquals(self.called, [(eidn, 'ecrit_par', eidp,)]) |
482 |
498 |
483 def test_after_add_inline(self): |
499 def test_after_add_inline(self): |
484 """make sure after_<event>_relation hooks are deferred""" |
500 """make sure after_<event>_relation hooks are deferred""" |
|
501 p1 = self.add_entity('Personne', nom=u'toto') |
485 self.hm.register_hook(self._after_relation_hook, |
502 self.hm.register_hook(self._after_relation_hook, |
486 'after_add_relation', 'in_state') |
503 'after_add_relation', 'ecrit_par') |
487 eidp = self.execute('INSERT CWUser X: X login "toto", X upassword "tutu", X in_state S WHERE S name "activated"')[0][0] |
504 eidn = self.execute('INSERT Note N: N ecrit_par P WHERE P nom "toto"')[0][0] |
488 eids = self.execute('State X WHERE X name "activated"')[0][0] |
505 self.assertEquals(self.called, [(eidn, 'ecrit_par', p1.eid,)]) |
489 self.assertEquals(self.called, [(eidp, 'in_state', eids,)]) |
|
490 |
506 |
491 def test_before_delete_inline_relation(self): |
507 def test_before_delete_inline_relation(self): |
492 """make sure before_<event>_relation hooks are called directly""" |
508 """make sure before_<event>_relation hooks are called directly""" |
493 self.hm.register_hook(self._before_relation_hook, |
509 self.hm.register_hook(self._before_relation_hook, |
494 'before_delete_relation', 'ecrit_par') |
510 'before_delete_relation', 'ecrit_par') |