from__future__importwith_statementfromcubicweb.devtoolsimportApptestConfigurationfromcubicweb.devtools.testlibimportCubicWebTCfromcubicweb.selectorsimportis_instancefromcubicweb.entities.adaptersimportIFTIndexableAdapterclassPostgresFTITC(CubicWebTC):config=ApptestConfiguration('data',sourcefile='sources_fti')deftest_occurence_count(self):req=self.request()c1=req.create_entity('Card',title=u'c1',content=u'cubicweb cubicweb cubicweb')c2=req.create_entity('Card',title=u'c3',content=u'cubicweb')c3=req.create_entity('Card',title=u'c2',content=u'cubicweb cubicweb')self.commit()self.assertEquals(req.execute('Card X ORDERBY FTIRANK(X) DESC WHERE X has_text "cubicweb"').rows,[[c1.eid],[c3.eid],[c2.eid]])deftest_attr_weight(self):classCardIFTIndexableAdapter(IFTIndexableAdapter):__select__=is_instance('Card')attr_weight={'title':'A'}withself.temporary_appobjects(CardIFTIndexableAdapter):req=self.request()c1=req.create_entity('Card',title=u'c1',content=u'cubicweb cubicweb cubicweb')c2=req.create_entity('Card',title=u'c2',content=u'cubicweb cubicweb')c3=req.create_entity('Card',title=u'cubicweb',content=u'autre chose')self.commit()self.assertEquals(req.execute('Card X ORDERBY FTIRANK(X) DESC WHERE X has_text "cubicweb"').rows,[[c3.eid],[c1.eid],[c2.eid]])deftest_entity_weight(self):classPersonneIFTIndexableAdapter(IFTIndexableAdapter):__select__=is_instance('Personne')entity_weight=2.0withself.temporary_appobjects(PersonneIFTIndexableAdapter):req=self.request()c1=req.create_entity('Personne',nom=u'c1',prenom=u'cubicweb')c2=req.create_entity('Comment',content=u'cubicweb cubicweb',comments=c1)c3=req.create_entity('Comment',content=u'cubicweb cubicweb cubicweb',comments=c1)self.commit()self.assertEquals(req.execute('Any X ORDERBY FTIRANK(X) DESC WHERE X has_text "cubicweb"').rows,[[c1.eid],[c3.eid],[c2.eid]])