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() |