[web] Exposes the undo feature to user through a undo-history view (closes #893940)
# copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved.# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr## This file is part of CubicWeb.## CubicWeb is free software: you can redistribute it and/or modify it under the# terms of the GNU Lesser General Public License as published by the Free# Software Foundation, either version 2.1 of the License, or (at your option)# any later version.## CubicWeb is distributed in the hope that it will be useful, but WITHOUT# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more# details.## You should have received a copy of the GNU Lesser General Public License along# with CubicWeb. If not, see <http://www.gnu.org/licenses/>.importsysfromStringIOimportStringIOfromlogilab.common.testlibimportTestCase,unittest_mainfromcubicweb.devtoolsimportget_test_db_handler,TestServerConfigurationfromcubicweb.server.checkintegrityimportcheck,reindex_entitiesclassCheckIntegrityTC(TestCase):defsetUp(self):handler=get_test_db_handler(TestServerConfiguration(apphome=self.datadir))handler.build_db_cache()self.repo,self.cnx=handler.get_repo_and_cnx()self.execute=self.cnx.cursor().executeself.session=self.repo._sessions[self.cnx.sessionid]sys.stderr=sys.stdout=StringIO()deftearDown(self):sys.stderr=sys.__stderr__sys.stdout=sys.__stdout__self.cnx.close()self.repo.shutdown()deftest_checks(self):check(self.repo,self.cnx,('entities','relations','text_index','metadata'),reindex=False,fix=True,withpb=False)deftest_reindex_all(self):self.execute('INSERT Personne X: X nom "toto", X prenom "tutu"')self.session.commit(False)self.assertTrue(self.execute('Any X WHERE X has_text "tutu"'))reindex_entities(self.repo.schema,self.session,withpb=False)self.assertTrue(self.execute('Any X WHERE X has_text "tutu"'))deftest_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.assertTrue(self.execute('Any X WHERE X has_text "tutu"'))self.assertTrue(self.execute('Any X WHERE X has_text "toto"'))if__name__=='__main__':unittest_main()