diff -r b30946d1afa1 -r 9bfa823735e0 server/test/unittest_checkintegrity.py --- a/server/test/unittest_checkintegrity.py Mon Jul 12 12:30:36 2010 +0200 +++ b/server/test/unittest_checkintegrity.py Mon Jul 12 12:28:19 2010 +0200 @@ -15,28 +15,47 @@ # # You should have received a copy of the GNU Lesser General Public License along # with CubicWeb. If not, see . -""" -""" import sys from StringIO import StringIO from logilab.common.testlib import TestCase, unittest_main from cubicweb.devtools import init_test_database -from cubicweb.server.checkintegrity import check +from cubicweb.server.checkintegrity import check, reindex_entities class CheckIntegrityTC(TestCase): - def test(self): - repo, cnx = init_test_database() + def setUp(self): + self.repo, self.cnx = init_test_database() + self.execute = self.cnx.cursor().execute + self.session = self.repo._sessions[self.cnx.sessionid] sys.stderr = sys.stdout = StringIO() - try: - check(repo, cnx, ('entities', 'relations', 'text_index', 'metadata'), - reindex=True, fix=True, withpb=False) - finally: - sys.stderr = sys.__stderr__ - sys.stdout = sys.__stdout__ - repo.shutdown() + + def tearDown(self): + sys.stderr = sys.__stderr__ + sys.stdout = sys.__stdout__ + self.cnx.close() + self.repo.shutdown() + + def test_checks(self): + check(self.repo, self.cnx, ('entities', 'relations', 'text_index', 'metadata'), + reindex=False, fix=True, withpb=False) + + def test_reindex_all(self): + self.execute('INSERT Personne X: X nom "toto", X prenom "tutu"') + self.session.commit(False) + self.failUnless(self.execute('Any X WHERE X has_text "tutu"')) + reindex_entities(self.repo.schema, self.session, withpb=False) + self.failUnless(self.execute('Any X WHERE X has_text "tutu"')) + + def test_reindex_etype(self): + self.execute('INSERT Personne X: X nom "toto", X prenom "tutu"') + self.execute('INSERT Affaire X: X ref "toto"') + self.session.commit(False) + reindex_entities(self.repo.schema, self.session, withpb=False, + etypes=('Personne',)) + self.failUnless(self.execute('Any X WHERE X has_text "tutu"')) + self.failUnless(self.execute('Any X WHERE X has_text "toto"')) if __name__ == '__main__': unittest_main()