server/test/unittest_repository.py
changeset 9449 287a05ec7ab1
parent 9395 96dba2efd16d
child 9450 af4b93bc38a5
equal deleted inserted replaced
9448:3e7cad3967c5 9449:287a05ec7ab1
   707         self.assertEqual(data, [])
   707         self.assertEqual(data, [])
   708 
   708 
   709 
   709 
   710 class FTITC(CubicWebTC):
   710 class FTITC(CubicWebTC):
   711 
   711 
   712     def test_reindex_and_modified_since(self):
       
   713         self.repo.system_source.multisources_etypes.add('Personne')
       
   714         eidp = self.execute('INSERT Personne X: X nom "toto", X prenom "tutu"')[0][0]
       
   715         self.commit()
       
   716         ts = datetime.now()
       
   717         self.assertEqual(len(self.execute('Personne X WHERE X has_text "tutu"')), 1)
       
   718         self.session.set_cnxset()
       
   719         cu = self.session.system_sql('SELECT mtime, eid FROM entities WHERE eid = %s' % eidp)
       
   720         omtime = cu.fetchone()[0]
       
   721         # our sqlite datetime adapter is ignore seconds fraction, so we have to
       
   722         # ensure update is done the next seconds
       
   723         time.sleep(1 - (ts.second - int(ts.second)))
       
   724         self.execute('SET X nom "tata" WHERE X eid %(x)s', {'x': eidp})
       
   725         self.commit()
       
   726         self.assertEqual(len(self.execute('Personne X WHERE X has_text "tutu"')), 1)
       
   727         self.session.set_cnxset()
       
   728         cu = self.session.system_sql('SELECT mtime FROM entities WHERE eid = %s' % eidp)
       
   729         mtime = cu.fetchone()[0]
       
   730         self.assertTrue(omtime < mtime)
       
   731         self.commit()
       
   732         date, modified, deleted = self.repo.entities_modified_since(('Personne',), omtime)
       
   733         self.assertEqual(modified, [('Personne', eidp)])
       
   734         self.assertEqual(deleted, [])
       
   735         date, modified, deleted = self.repo.entities_modified_since(('Personne',), mtime)
       
   736         self.assertEqual(modified, [])
       
   737         self.assertEqual(deleted, [])
       
   738         self.execute('DELETE Personne X WHERE X eid %(x)s', {'x': eidp})
       
   739         self.commit()
       
   740         date, modified, deleted = self.repo.entities_modified_since(('Personne',), omtime)
       
   741         self.assertEqual(modified, [])
       
   742         self.assertEqual(deleted, [('Personne', eidp)])
       
   743 
       
   744     def test_fulltext_container_entity(self):
   712     def test_fulltext_container_entity(self):
   745         assert self.schema.rschema('use_email').fulltext_container == 'subject'
   713         assert self.schema.rschema('use_email').fulltext_container == 'subject'
   746         req = self.request()
   714         req = self.request()
   747         toto = req.create_entity('EmailAddress', address=u'toto@logilab.fr')
   715         toto = req.create_entity('EmailAddress', address=u'toto@logilab.fr')
   748         self.commit()
   716         self.commit()