# HG changeset patch # User Sylvain Thénault # Date 1371420455 -7200 # Node ID 287a05ec7ab13f0171fc386e305a6095864d58d8 # Parent 3e7cad3967c5e2bd51c4b1e1482b4c11da6b7930 [multi-sources-removal] drop repository entities_modified_since public api actually only used by pyrorql/zmqrql sources which have been dropped. This will allow to drop a bunch of system meta-data (eg deleted_entities) Related to #2919300 diff -r 3e7cad3967c5 -r 287a05ec7ab1 server/repository.py --- a/server/repository.py Tue Jan 21 18:11:30 2014 +0100 +++ b/server/repository.py Mon Jun 17 00:07:35 2013 +0200 @@ -883,25 +883,6 @@ finally: session.free_cnxset() - # public (inter-repository) interface ##################################### - - def entities_modified_since(self, etypes, mtime): - """function designed to be called from an external repository which - is using this one as a rql source for synchronization, and return a - 3-uple containing : - * the local date - * list of (etype, eid) of entities of the given types which have been - modified since the given timestamp (actually entities whose full text - index content has changed) - * list of (etype, eid) of entities of the given types which have been - deleted since the given timestamp - """ - with self.internal_session() as session: - updatetime = datetime.utcnow() - modentities, delentities = self.system_source.modified_entities( - session, etypes, mtime) - return updatetime, modentities, delentities - # session handling ######################################################## def close_sessions(self): diff -r 3e7cad3967c5 -r 287a05ec7ab1 server/sources/__init__.py --- a/server/sources/__init__.py Tue Jan 21 18:11:30 2014 +0100 +++ b/server/sources/__init__.py Mon Jun 17 00:07:35 2013 +0200 @@ -470,16 +470,6 @@ """ raise NotImplementedError(self) - def modified_entities(self, session, etypes, mtime): - """return a 2-uple: - * list of (etype, eid) of entities of the given types which have been - modified since the given timestamp (actually entities whose full text - index content has changed) - * list of (etype, eid) of entities of the given types which have been - deleted since the given timestamp - """ - raise NotImplementedError(self) - def index_entity(self, session, entity): """create an operation to [re]index textual content of the given entity on commit diff -r 3e7cad3967c5 -r 287a05ec7ab1 server/test/unittest_repository.py --- a/server/test/unittest_repository.py Tue Jan 21 18:11:30 2014 +0100 +++ b/server/test/unittest_repository.py Mon Jun 17 00:07:35 2013 +0200 @@ -709,38 +709,6 @@ class FTITC(CubicWebTC): - def test_reindex_and_modified_since(self): - self.repo.system_source.multisources_etypes.add('Personne') - eidp = self.execute('INSERT Personne X: X nom "toto", X prenom "tutu"')[0][0] - self.commit() - ts = datetime.now() - self.assertEqual(len(self.execute('Personne X WHERE X has_text "tutu"')), 1) - self.session.set_cnxset() - cu = self.session.system_sql('SELECT mtime, eid FROM entities WHERE eid = %s' % eidp) - omtime = cu.fetchone()[0] - # our sqlite datetime adapter is ignore seconds fraction, so we have to - # ensure update is done the next seconds - time.sleep(1 - (ts.second - int(ts.second))) - self.execute('SET X nom "tata" WHERE X eid %(x)s', {'x': eidp}) - self.commit() - self.assertEqual(len(self.execute('Personne X WHERE X has_text "tutu"')), 1) - self.session.set_cnxset() - cu = self.session.system_sql('SELECT mtime FROM entities WHERE eid = %s' % eidp) - mtime = cu.fetchone()[0] - self.assertTrue(omtime < mtime) - self.commit() - date, modified, deleted = self.repo.entities_modified_since(('Personne',), omtime) - self.assertEqual(modified, [('Personne', eidp)]) - self.assertEqual(deleted, []) - date, modified, deleted = self.repo.entities_modified_since(('Personne',), mtime) - self.assertEqual(modified, []) - self.assertEqual(deleted, []) - self.execute('DELETE Personne X WHERE X eid %(x)s', {'x': eidp}) - self.commit() - date, modified, deleted = self.repo.entities_modified_since(('Personne',), omtime) - self.assertEqual(modified, []) - self.assertEqual(deleted, [('Personne', eidp)]) - def test_fulltext_container_entity(self): assert self.schema.rschema('use_email').fulltext_container == 'subject' req = self.request()