Commit da1347096c125a6234371587f73eba45e9098266
1 parent
c6a519ea
Exists in
master
and in
1 other branch
Updated PopconXapianIndex and its tests to deal with new index_mode option. Chan…
…ges on tests avoid using xapian.Database.close() which is is not available in old versions of the lib.
Showing
2 changed files
with
13 additions
and
25 deletions
Show diff stats
src/data.py
| @@ -129,13 +129,14 @@ class PopconXapianIndex(xapian.WritableDatabase): | @@ -129,13 +129,14 @@ class PopconXapianIndex(xapian.WritableDatabase): | ||
| 129 | """ | 129 | """ |
| 130 | self.axi = xapian.Database(cfg.axi) | 130 | self.axi = xapian.Database(cfg.axi) |
| 131 | self.path = os.path.expanduser(cfg.popcon_index) | 131 | self.path = os.path.expanduser(cfg.popcon_index) |
| 132 | - if reindex or not self.load_index(): | 132 | + self.source_dir = cfg.popcon_dir |
| 133 | + if cfg.index_mode.startswith("1") or not self.load_index(): | ||
| 133 | if not os.path.exists(cfg.popcon_dir): | 134 | if not os.path.exists(cfg.popcon_dir): |
| 134 | os.makedirs(cfg.popcon_dir) | 135 | os.makedirs(cfg.popcon_dir) |
| 135 | if not os.listdir(cfg.popcon_dir): | 136 | if not os.listdir(cfg.popcon_dir): |
| 136 | logging.critical("Popcon dir seems to be empty.") | 137 | logging.critical("Popcon dir seems to be empty.") |
| 137 | raise Error | 138 | raise Error |
| 138 | - if not cfg.clustering: | 139 | + if cfg.index_mode == "10": |
| 139 | self.source_dir = os.path.expanduser(cfg.popcon_dir) | 140 | self.source_dir = os.path.expanduser(cfg.popcon_dir) |
| 140 | else: | 141 | else: |
| 141 | self.source_dir = os.path.expanduser(cfg.clusters_dir) | 142 | self.source_dir = os.path.expanduser(cfg.clusters_dir) |
src/tests/data_tests.py
| @@ -56,41 +56,28 @@ class PopconXapianIndexTests(unittest2.TestCase): | @@ -56,41 +56,28 @@ class PopconXapianIndexTests(unittest2.TestCase): | ||
| 56 | self.cfg.popcon_index = "test_data/.sample_pxi" | 56 | self.cfg.popcon_index = "test_data/.sample_pxi" |
| 57 | self.cfg.popcon_dir = "test_data/popcon_dir" | 57 | self.cfg.popcon_dir = "test_data/popcon_dir" |
| 58 | self.cfg.clusters_dir = "test_data/clusters_dir" | 58 | self.cfg.clusters_dir = "test_data/clusters_dir" |
| 59 | + # build old index for all tests | ||
| 59 | shutil.rmtree(self.cfg.popcon_index,1) | 60 | shutil.rmtree(self.cfg.popcon_index,1) |
| 60 | self.assertFalse(os.path.exists(self.cfg.popcon_index)) | 61 | self.assertFalse(os.path.exists(self.cfg.popcon_index)) |
| 61 | - | ||
| 62 | - def test_build_load(self): | ||
| 63 | - # try to load, but index does not exist | 62 | + # local variable, index will be closed before test |
| 64 | pxi = PopconXapianIndex(self.cfg) | 63 | pxi = PopconXapianIndex(self.cfg) |
| 65 | self.assertEqual(pxi.get_metadata("old"),"") | 64 | self.assertEqual(pxi.get_metadata("old"),"") |
| 66 | pxi.set_metadata("old","true") | 65 | pxi.set_metadata("old","true") |
| 67 | - pxi.close() | 66 | + |
| 67 | + def test_load(self): | ||
| 68 | # load the previously built index | 68 | # load the previously built index |
| 69 | - new_pxi = PopconXapianIndex(self.cfg) | ||
| 70 | - self.assertEqual(new_pxi.get_metadata("old"),"true") | 69 | + pxi = PopconXapianIndex(self.cfg) |
| 70 | + self.assertEqual(pxi.get_metadata("old"),"true") | ||
| 71 | 71 | ||
| 72 | def test_reindex(self): | 72 | def test_reindex(self): |
| 73 | + # force reindex with no clustering | ||
| 74 | + self.cfg.index_mode = "10" | ||
| 73 | pxi = PopconXapianIndex(self.cfg) | 75 | pxi = PopconXapianIndex(self.cfg) |
| 74 | self.assertEqual(pxi.get_metadata("old"),"") | 76 | self.assertEqual(pxi.get_metadata("old"),"") |
| 75 | - pxi.set_metadata("old","true") | ||
| 76 | - pxi.close() | ||
| 77 | - # force reindex | ||
| 78 | - reindex = 1 | ||
| 79 | - new_pxi = PopconXapianIndex(self.cfg,reindex,0) | ||
| 80 | - self.assertEqual(new_pxi.get_metadata("old"),"") | ||
| 81 | - | ||
| 82 | - def test_no_clustering(self): | ||
| 83 | - self.cfg.clustering = 0 | ||
| 84 | - pxi = PopconXapianIndex(self.cfg) | ||
| 85 | - self.assertEqual(pxi.source_dir,self.cfg.popcon_dir) | ||
| 86 | - all_submissions = [submissions for (root, dirs, submissions) in | ||
| 87 | - os.walk(pxi.source_dir)] | ||
| 88 | - self.assertEqual(pxi.get_doccount(), | ||
| 89 | - sum([len(submissions) for submissions in | ||
| 90 | - all_submissions])) | ||
| 91 | 77 | ||
| 92 | def test_clustering(self): | 78 | def test_clustering(self): |
| 93 | - self.cfg.clustering = 1 | 79 | + # force reindex with clustering |
| 80 | + self.cfg.index_mode = "11" | ||
| 94 | pxi = PopconXapianIndex(self.cfg) | 81 | pxi = PopconXapianIndex(self.cfg) |
| 95 | self.assertEqual(pxi.source_dir,self.cfg.clusters_dir) | 82 | self.assertEqual(pxi.source_dir,self.cfg.clusters_dir) |
| 96 | all_submissions = [submissions for (root, dirs, submissions) in | 83 | all_submissions = [submissions for (root, dirs, submissions) in |