[Checkins] SVN: relstorage/trunk/relstorage/tests/blob/testblob.py Removed another ZODB 3.9 dependency

Shane Hathaway shane at hathawaymix.org
Fri Sep 25 06:20:20 EDT 2009


Log message for revision 104521:
  Removed another ZODB 3.9 dependency

Changed:
  U   relstorage/trunk/relstorage/tests/blob/testblob.py

-=-
Modified: relstorage/trunk/relstorage/tests/blob/testblob.py
===================================================================
--- relstorage/trunk/relstorage/tests/blob/testblob.py	2009-09-25 09:59:02 UTC (rev 104520)
+++ relstorage/trunk/relstorage/tests/blob/testblob.py	2009-09-25 10:20:20 UTC (rev 104521)
@@ -16,11 +16,14 @@
 from ZODB.DB import DB
 from zope.testing import doctest
 
+import atexit
 import os
 import random
 import re
+import shutil
 import struct
 import sys
+import tempfile
 import time
 import transaction
 import unittest
@@ -455,6 +458,35 @@
 def tearDown(test):
     ZODB.tests.util.tearDown(test)
 
+
+class MinimalTestLayer:
+
+    __bases__ = ()
+    __module__ = ''
+
+    def __init__(self, name):
+        self.__name__ = name
+
+    def setUp(self):
+        self.here = os.getcwd()
+        self.tmp = tempfile.mkdtemp(self.__name__, dir=os.getcwd())
+        os.chdir(self.tmp)
+
+        # sigh. tearDown isn't called when a layer is run in a sub-process.
+        atexit.register(clean, self.tmp)
+
+    def tearDown(self):
+        os.chdir(self.here)
+        shutil.rmtree(self.tmp)
+
+    testSetUp = testTearDown = lambda self: None
+
+
+def clean(tmp):
+    if os.path.isdir(tmp):
+        shutil.rmtree(tmp)
+
+
 def storage_reusable_suite(prefix, factory,
                            test_blob_storage_recovery=False,
                            test_packing=False,
@@ -513,6 +545,6 @@
     if test_undo:
         add_test_based_on_test_class(BlobUndoTests)
 
-    suite.layer = ZODB.tests.util.MininalTestLayer(prefix+'BlobTests')
+    suite.layer = MinimalTestLayer(prefix+'BlobTests')
 
     return suite



More information about the checkins mailing list