diff -r b91205ada414 -r 9f619715665b server/test/unittest_repository.py --- a/server/test/unittest_repository.py Fri Apr 15 16:05:20 2011 +0200 +++ b/server/test/unittest_repository.py Fri Apr 15 15:42:17 2011 +0200 @@ -757,5 +757,73 @@ t3 = time.time() self.info('commit creation: %.2gs', (t3 - t2)) + + def test_session_add_relation(self): + """ to be compared with test_session_add_relations""" + req = self.request() + personnes = [] + for i in xrange(2000): + p = req.create_entity('Personne', nom=u'Doe%03d'%i, prenom=u'John', sexe=u'M') + personnes.append(p) + abraham = req.create_entity('Personne', nom=u'Abraham', prenom=u'John', sexe=u'M') + req.cnx.commit() + t0 = time.time() + add_relation = self.session.add_relation + for p in personnes: + add_relation(abraham.eid, 'personne_composite', p.eid) + req.cnx.commit() + t1 = time.time() + self.info('add relation: %.2gs', t1-t0) + + def test_session_add_relations (self): + """ to be compared with test_session_add_relation""" + req = self.request() + personnes = [] + for i in xrange(2000): + p = req.create_entity('Personne', nom=u'Doe%03d'%i, prenom=u'John', sexe=u'M') + personnes.append(p) + abraham = req.create_entity('Personne', nom=u'Abraham', prenom=u'John', sexe=u'M') + req.cnx.commit() + t0 = time.time() + add_relations = self.session.add_relations + relations = [('personne_composite', [(abraham.eid, p.eid) for p in personnes])] + add_relations(relations) + req.cnx.commit() + t1 = time.time() + self.info('add relations: %.2gs', t1-t0) + def test_session_add_relation_inlined(self): + """ to be compared with test_session_add_relations""" + req = self.request() + personnes = [] + for i in xrange(2000): + p = req.create_entity('Personne', nom=u'Doe%03d'%i, prenom=u'John', sexe=u'M') + personnes.append(p) + abraham = req.create_entity('Personne', nom=u'Abraham', prenom=u'John', sexe=u'M') + req.cnx.commit() + t0 = time.time() + add_relation = self.session.add_relation + for p in personnes: + add_relation(abraham.eid, 'personne_inlined', p.eid) + req.cnx.commit() + t1 = time.time() + self.info('add relation (inlined): %.2gs', t1-t0) + + def test_session_add_relations_inlined (self): + """ to be compared with test_session_add_relation""" + req = self.request() + personnes = [] + for i in xrange(2000): + p = req.create_entity('Personne', nom=u'Doe%03d'%i, prenom=u'John', sexe=u'M') + personnes.append(p) + abraham = req.create_entity('Personne', nom=u'Abraham', prenom=u'John', sexe=u'M') + req.cnx.commit() + t0 = time.time() + add_relations = self.session.add_relations + relations = [('personne_inlined', [(abraham.eid, p.eid) for p in personnes])] + add_relations(relations) + req.cnx.commit() + t1 = time.time() + self.info('add relations (inlined): %.2gs', t1-t0) + if __name__ == '__main__': unittest_main()