server/test/unittest_checkintegrity.py
changeset 9797 4e640ab62f51
parent 9576 5d4f662f5e31
child 10806 bd98cd3b7869
equal deleted inserted replaced
9796:2d1e488f6f71 9797:4e640ab62f51
     1 # copyright 2003-2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     1 # copyright 2003-2014 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     3 #
     3 #
     4 # This file is part of CubicWeb.
     4 # This file is part of CubicWeb.
     5 #
     5 #
     6 # CubicWeb is free software: you can redistribute it and/or modify it under the
     6 # CubicWeb is free software: you can redistribute it and/or modify it under the
    23 
    23 
    24 
    24 
    25 from cubicweb.server.checkintegrity import check, reindex_entities
    25 from cubicweb.server.checkintegrity import check, reindex_entities
    26 
    26 
    27 class CheckIntegrityTC(TestCase):
    27 class CheckIntegrityTC(TestCase):
       
    28 
    28     def setUp(self):
    29     def setUp(self):
    29         handler = get_test_db_handler(TestServerConfiguration(apphome=self.datadir))
    30         handler = get_test_db_handler(TestServerConfiguration(apphome=self.datadir))
    30         handler.build_db_cache()
    31         handler.build_db_cache()
    31         self.repo, self.cnx = handler.get_repo_and_cnx()
    32         self.repo, _cnx = handler.get_repo_and_cnx()
    32         session = self.repo._get_session(self.cnx.sessionid, setcnxset=True)
       
    33         self.session = session
       
    34         self.execute = session.execute
       
    35         sys.stderr = sys.stdout = StringIO()
    33         sys.stderr = sys.stdout = StringIO()
    36 
    34 
    37     def tearDown(self):
    35     def tearDown(self):
    38         sys.stderr = sys.__stderr__
    36         sys.stderr = sys.__stderr__
    39         sys.stdout = sys.__stdout__
    37         sys.stdout = sys.__stdout__
    40         self.cnx.close()
       
    41         self.repo.shutdown()
    38         self.repo.shutdown()
    42 
    39 
    43     def test_checks(self):
    40     def test_checks(self):
    44         with self.cnx:
    41         with self.repo.internal_cnx() as cnx:
    45             check(self.repo, self.cnx, ('entities', 'relations', 'text_index', 'metadata'),
    42             check(self.repo, cnx, ('entities', 'relations', 'text_index', 'metadata'),
    46                   reindex=False, fix=True, withpb=False)
    43                   reindex=False, fix=True, withpb=False)
    47 
    44 
    48     def test_reindex_all(self):
    45     def test_reindex_all(self):
    49         self.execute('INSERT Personne X: X nom "toto", X prenom "tutu"')
    46         with self.repo.internal_cnx() as cnx:
    50         self.session.commit(False)
    47             cnx.execute('INSERT Personne X: X nom "toto", X prenom "tutu"')
    51         self.assertTrue(self.execute('Any X WHERE X has_text "tutu"'))
    48             cnx.commit()
    52         reindex_entities(self.repo.schema, self.session, withpb=False)
    49             self.assertTrue(cnx.execute('Any X WHERE X has_text "tutu"'))
    53         self.assertTrue(self.execute('Any X WHERE X has_text "tutu"'))
    50             reindex_entities(self.repo.schema, cnx, withpb=False)
       
    51             self.assertTrue(cnx.execute('Any X WHERE X has_text "tutu"'))
    54 
    52 
    55     def test_reindex_etype(self):
    53     def test_reindex_etype(self):
    56         self.execute('INSERT Personne X: X nom "toto", X prenom "tutu"')
    54         with self.repo.internal_cnx() as cnx:
    57         self.execute('INSERT Affaire X: X ref "toto"')
    55             cnx.execute('INSERT Personne X: X nom "toto", X prenom "tutu"')
    58         self.session.commit(False)
    56             cnx.execute('INSERT Affaire X: X ref "toto"')
    59         reindex_entities(self.repo.schema, self.session, withpb=False,
    57             cnx.commit()
    60                          etypes=('Personne',))
    58             reindex_entities(self.repo.schema, cnx, withpb=False,
    61         self.assertTrue(self.execute('Any X WHERE X has_text "tutu"'))
    59                              etypes=('Personne',))
    62         self.assertTrue(self.execute('Any X WHERE X has_text "toto"'))
    60             self.assertTrue(cnx.execute('Any X WHERE X has_text "tutu"'))
       
    61             self.assertTrue(cnx.execute('Any X WHERE X has_text "toto"'))
    63 
    62 
    64 if __name__ == '__main__':
    63 if __name__ == '__main__':
    65     unittest_main()
    64     unittest_main()