server/test/unittest_repository.py
branch3.5
changeset 2923 b97a0f8dd4dc
parent 2920 64322aa83a1d
child 2968 0e3460341023
child 3771 234b003f0fe0
equal deleted inserted replaced
2922:996103009bc5 2923:b97a0f8dd4dc
   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')