Hi, I've observed some tests failing on my windows build of PyLucene. Tested with PyLucene 2.9(.2) and PyLucene 3.1(.0) (latest) with Python 2.6.
The problem is with test_PyLucene.py and test_PythonDirectory.py and looks like some file lock issue. The test fixture tries to cleanup the created index files (tearDown) which fails with windows complaining the file being still in use by some processes - see output below (sorry, german windows ,-) I tried several things like different windows boxes (Vista/Win7), disabling windows processes (antivir, indexer etc.) - with no luck. Finally I came across a small change in the test_PyLucene.py code which fixes the issue for this test: 260c260,261 < self.closeStore(store, reader) --- > pass > #self.closeStore(store, reader) So this looks like a problem in the test-code rather than in windows/python/pyLucene - some store not being closed results in file lock. However I couldn't fix the issue in test_PythonDirectory.py and still wonder if no one else has seen this problem before... Also I wonder why the tests don't fail on other OSes. So I still fear it could be somewhat related to either my windows built or windows in general... Any ideas welcome... (I guess someone had good reason to comment the closeStore() ?) (sample output of failing tests below - I can report the full failure if that's of any help) regards, Thomas -- OrbiTeam Software GmbH & Co. KG Endenicher Allee 35 53121 Bonn Germany http://www.orbiteam.de sample output: -------------- test>python test_PyLucene.py EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ====================================================================== ERROR: test_FieldEnumeration (__main__.Test_PyLuceneWithFSStore) ---------------------------------------------------------------------- Traceback (most recent call last): File "test/test_PyLucene.py", line 304, in tearDown shutil.rmtree(path) # self.STORE_DIR) File "C:\Python26\lib\shutil.py", line 221, in rmtree onerror(os.remove, fullname, sys.exc_info()) File "C:\Python26\lib\shutil.py", line 219, in rmtree os.remove(fullname) WindowsError: [Error 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: 'testrepo\\_0.fdt' ==> test succeeds with above fix! ====================================================================== test>python test_PythonDirectory.py Testing Indexing Incremental Looping ... indexing 98 indexing 99 .....EEEEEEEE ====================================================================== ERROR: test_removeDocument (__main__.PythonDirectoryTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "I:\Devel\test\PyLucene\PYL31\test\test_PyLucene.py", line 178, in test_removeDocument self.closeStore(store, searcher, reader) File "test_PythonDirectory.py", line 241, in closeStore arg.close() JavaError: java.lang.RuntimeException: WindowsError Java stacktrace: java.lang.RuntimeException: WindowsError at org.apache.pylucene.store.PythonDirectory.deleteFile(Native Method) at org.apache.lucene.index.IndexFileDeleter.deleteFile(IndexFileDeleter. java:542) at org.apache.lucene.index.IndexFileDeleter.decRef(IndexFileDeleter.java :487) at org.apache.lucene.index.IndexFileDeleter.decRef(IndexFileDeleter.java :475) at org.apache.lucene.index.IndexFileDeleter.close(IndexFileDeleter.java: 355) at org.apache.lucene.index.DirectoryReader.doCommit(DirectoryReader.java :838) at org.apache.lucene.index.IndexReader.commit(IndexReader.java:1191) at org.apache.lucene.index.IndexReader.commit(IndexReader.java:1177) at org.apache.lucene.index.IndexReader.decRef(IndexReader.java:241) at org.apache.lucene.index.IndexReader.close(IndexReader.java:1207) ====================================================================== ERROR: test_removeDocument (__main__.PythonDirectoryTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_PythonDirectory.py", line 233, in tearDown shutil.rmtree(self.STORE_DIR) File "C:\Devel\Python26\lib\shutil.py", line 217, in rmtree onerror(os.remove, fullname, sys.exc_info()) File "C:\Devel\Python26\lib\shutil.py", line 215, in rmtree os.remove(fullname) WindowsError: [Error 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: 'testpyrepo\\_0.fdt' ======================================================================