[Checkins] SVN: grokproject/branches/rochael-alternate-grok_release_url/tests.py use a 'tempfile' temporary directory instead of a hardcoded one

Leonardo Rochael Almeida leo at hiper.com.br
Sun Sep 28 04:14:59 EDT 2008


Log message for revision 91572:
  use a 'tempfile' temporary directory instead of a hardcoded one

Changed:
  U   grokproject/branches/rochael-alternate-grok_release_url/tests.py

-=-
Modified: grokproject/branches/rochael-alternate-grok_release_url/tests.py
===================================================================
--- grokproject/branches/rochael-alternate-grok_release_url/tests.py	2008-09-28 08:07:53 UTC (rev 91571)
+++ grokproject/branches/rochael-alternate-grok_release_url/tests.py	2008-09-28 08:14:58 UTC (rev 91572)
@@ -14,6 +14,7 @@
 import shutil
 import popen2
 import StringIO
+import tempfile
 
 from zope.testing import doctest
 
@@ -70,7 +71,7 @@
     open(filename, 'w').write(kwargs.get('data',''))
 
 execdir = os.path.abspath(os.path.dirname(sys.executable))
-tempdir = os.getenv('TEMP','/tmp')
+testfiles = ['tests.txt',]# 'test_offline.txt']
 
 def doc_suite(package_dir, setUp=None, tearDown=None, globs=None):
     """Returns a test suite, based on doctests found in /doctest."""
@@ -78,18 +79,28 @@
     if globs is None:
         globs = globals()
 
+    tempdir = tempfile.mkdtemp()
+    globs.update(tempdir=tempdir)
+    def docTearDown(doctest):
+        tempdir = doctest.globs['tempdir']
+        assert os.path.isdir(tempdir)
+        rmdir(tempdir)
+        assert not os.path.exists(tempdir)
+        if tearDown is not None:
+            tearDown(doctest)
+
     flags = (doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE |
              doctest.REPORT_ONLY_FIRST_FAILURE)
 
     if package_dir not in sys.path:
         sys.path.append(package_dir)
 
-    docs = [os.path.join(package_dir, 'tests.txt')]
+    docs = [os.path.join(package_dir, name) for name in testfiles]
 
     for test in docs:
         suite.append(doctest.DocFileSuite(test, optionflags=flags,
                                           globs=globs, setUp=setUp,
-                                          tearDown=tearDown,
+                                          tearDown=docTearDown,
                                           module_relative=False))
 
     return unittest.TestSuite(suite)



More information about the Checkins mailing list