Commits

Matt Chaput committed 970fbe0

Changed unit test helper code to create temp dirs in place instead of under $TEMP.

Comments (0)

Files changed (2)

 benchmark/dictionary_index*
 benchmark/enron_cache.pickle
 benchmark/enron_mail_082109.tar.gz
+
+syntax: regexp
+^tmp$

src/whoosh/support/testing.py

-import shutil
-import sys
-import tempfile
+# Copyright 2007 Matt Chaput. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+#    1. Redistributions of source code must retain the above copyright notice,
+#       this list of conditions and the following disclaimer.
+#
+#    2. Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY MATT CHAPUT ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL MATT CHAPUT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# The views and conclusions contained in the software and documentation are
+# those of the authors and should not be interpreted as representing official
+# policies, either expressed or implied, of Matt Chaput.
+
+import os.path, shutil, sys, random
 from functools import wraps
 
 from whoosh.filedb.filestore import FileStorage
 
 
 class TempStorage(object):
-    def __init__(self, basename='', parentdir=None, suppress=frozenset(),
+    def __init__(self, basename=None, parentdir=".", suppress=frozenset(),
                  keepdir=False):
-        self.basename = basename
+        self.basename = basename or hex(random.randint(0, 1000000000))[2:]
         self.parentdir = parentdir
         self.suppress = suppress
         self.keepdir = keepdir
         self.dir = None
     
+    def _mkdir(self):
+        self.dir = os.path.join(self.parentdir, "tmp", self.basename + ".tmpix")
+        if not os.path.exists(self.dir):
+            os.makedirs(self.dir)
+        
     def __enter__(self):
-        self.dir = tempfile.mkdtemp(prefix=self.basename, suffix=".tmpix",
-                                    dir=self.parentdir)
+        self._mkdir()
         return FileStorage(self.dir)
     
     def __exit__(self, exc_type, exc_val, exc_tb):