From: Vinay Sajip Date: Tue, 6 Mar 2012 20:07:15 +0000 (+0000) Subject: Closes #14158: We now track test_support.TESTFN cleanup, and test_mailbox uses shutil... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=da563bfa4800688d0a2a771b8335a184738c8df2;p=python Closes #14158: We now track test_support.TESTFN cleanup, and test_mailbox uses shutil.rmtree for simpler code. --- diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 5044ce41f5..75a9bec02e 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -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('.', '_') diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py index a68686e6cb..d0538be1fa 100644 --- a/Lib/test/test_mailbox.py +++ b/Lib/test/test_mailbox.py @@ -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)