]> granicus.if.org Git - python/commitdiff
Closes #14158: We now track test_support.TESTFN cleanup, and test_mailbox uses shutil...
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Tue, 6 Mar 2012 20:07:15 +0000 (20:07 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Tue, 6 Mar 2012 20:07:15 +0000 (20:07 +0000)
Lib/test/regrtest.py
Lib/test/test_mailbox.py

index 5044ce41f5bc3539fae6a92065c26345803f5f76..75a9bec02eaf803192e71a6868a61869d8fafce7 100755 (executable)
@@ -758,7 +758,9 @@ class saved_test_environment:
     # the corresponding method names.
 
     resources = ('sys.argv', 'cwd', 'sys.stdin', 'sys.stdout', 'sys.stderr',
-                 'os.environ', 'sys.path', 'asyncore.socket_map')
+                 'os.environ', 'sys.path', 'asyncore.socket_map',
+                 'test_support.TESTFN',
+                )
 
     def get_sys_argv(self):
         return id(sys.argv), sys.argv, sys.argv[:]
@@ -809,6 +811,21 @@ class saved_test_environment:
             asyncore.close_all(ignore_all=True)
             asyncore.socket_map.update(saved_map)
 
+    def get_test_support_TESTFN(self):
+        if os.path.isfile(test_support.TESTFN):
+            result = 'f'
+        elif os.path.isdir(test_support.TESTFN):
+            result = 'd'
+        else:
+            result = None
+        return result
+    def restore_test_support_TESTFN(self, saved_value):
+        if saved_value is None:
+            if os.path.isfile(test_support.TESTFN):
+                os.unlink(test_support.TESTFN)
+            elif os.path.isdir(test_support.TESTFN):
+                shutil.rmtree(test_support.TESTFN)
+
     def resource_info(self):
         for name in self.resources:
             method_suffix = name.replace('.', '_')
index a68686e6cbac574f68c82d29420c1d64bcf221e4..d0538be1fae544fbe046ff50fe6e31fa9db8aabd 100644 (file)
@@ -6,6 +6,7 @@ import socket
 import email
 import email.message
 import re
+import shutil
 import StringIO
 from test import test_support
 import unittest
@@ -38,12 +39,7 @@ class TestBase(unittest.TestCase):
     def _delete_recursively(self, target):
         # Delete a file or delete a directory recursively
         if os.path.isdir(target):
-            for path, dirs, files in os.walk(target, topdown=False):
-                for name in files:
-                    os.remove(os.path.join(path, name))
-                for name in dirs:
-                    os.rmdir(os.path.join(path, name))
-            os.rmdir(target)
+            shutil.rmtree(target)
         elif os.path.exists(target):
             os.remove(target)