pylucene 3.5.0-3
[pylucene.git] / samples / LuceneInAction / lia / indexing / LockTest.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 import os
16
17 from unittest import TestCase
18
19 from lucene import VERSION, \
20      IndexWriter, IndexReader, SimpleAnalyzer, SimpleFSDirectory, System, File
21
22
23 class LockTest(TestCase):
24
25     def setUp(self):
26
27         indexDir = os.path.join(System.getProperty("java.io.tmpdir", "tmp"),
28                                 "index")
29         self.rmdir(indexDir)
30         self.dir = SimpleFSDirectory(File(indexDir))
31
32     def rmdir(self, dir):
33
34         for dir, dirnames, filenames in os.walk(dir):
35             for filename in filenames:
36                 os.remove(os.path.join(dir, filename))
37             for dirname in dirnames:
38                 os.rmdir(os.path.join(dir, dirname))
39
40     def testWriteLock(self):
41
42         writer1 = IndexWriter(self.dir, SimpleAnalyzer(),
43                               IndexWriter.MaxFieldLength.UNLIMITED)
44         writer2 = None
45
46         try:
47             try:
48                 writer2 = IndexWriter(self.dir, SimpleAnalyzer(),
49                                       IndexWriter.MaxFieldLength.UNLIMITED)
50                 self.fail("We should never reach this point")
51             except:
52                 pass
53         finally:
54             writer1.close()
55             self.assert_(writer2 is None)