pylucene 3.5.0-3
[pylucene.git] / samples / LuceneInAction / lia / indexing / DocumentDeleteTest.py
1 # ====================================================================
2 #   Licensed under the Apache License, Version 2.0 (the "License");
3 #   you may not use this file except in compliance with the License.
4 #   You may obtain a copy of the License at
5 #
6 #       http://www.apache.org/licenses/LICENSE-2.0
7 #
8 #   Unless required by applicable law or agreed to in writing, software
9 #   distributed under the License is distributed on an "AS IS" BASIS,
10 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 #   See the License for the specific language governing permissions and
12 #   limitations under the License.
13 # ====================================================================
14
15 from lucene import IndexWriter, IndexReader
16 from lia.indexing.BaseIndexingTestCase import BaseIndexingTestCase
17
18
19 class DocumentDeleteTest(BaseIndexingTestCase):
20
21     def testDeleteBeforeIndexMerge(self):
22
23         reader = IndexReader.open(self.dir, False)
24         self.assertEqual(2, reader.maxDoc())
25         self.assertEqual(2, reader.numDocs())
26         reader.deleteDocument(1)
27
28         self.assert_(reader.isDeleted(1))
29         self.assert_(reader.hasDeletions())
30         self.assertEqual(2, reader.maxDoc())
31         self.assertEqual(1, reader.numDocs())
32
33         reader.close()
34
35         reader = IndexReader.open(self.dir, True)
36
37         self.assertEqual(2, reader.maxDoc())
38         self.assertEqual(1, reader.numDocs())
39
40         reader.close()
41
42     def testDeleteAfterIndexMerge(self):
43
44         reader = IndexReader.open(self.dir, False)
45         self.assertEqual(2, reader.maxDoc())
46         self.assertEqual(2, reader.numDocs())
47         reader.deleteDocument(1)
48         reader.close()
49
50         writer = IndexWriter(self.dir, self.getAnalyzer(), False,
51                              IndexWriter.MaxFieldLength.UNLIMITED)
52         writer.optimize()
53         writer.close()
54
55         reader = IndexReader.open(self.dir, True)
56
57         self.assert_(not reader.isDeleted(1))
58         self.assert_(not reader.hasDeletions())
59         self.assertEqual(1, reader.maxDoc())
60         self.assertEqual(1, reader.numDocs())
61
62         reader.close()