diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2012-03-02 01:24:13 (GMT) |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2012-03-02 01:24:13 (GMT) |
commit | 2f24d98df08fbed8e7c82a3de1843ef27b779739 (patch) | |
tree | 038b097ad8c79e0a8f558437990fedd576f39377 | |
parent | be52d507d2ada0d13ad9e482f00908173d8900f0 (diff) | |
parent | f959618142888fab373c43edd35f20506a9740dc (diff) | |
download | cpython-2f24d98df08fbed8e7c82a3de1843ef27b779739.zip cpython-2f24d98df08fbed8e7c82a3de1843ef27b779739.tar.gz cpython-2f24d98df08fbed8e7c82a3de1843ef27b779739.tar.bz2 |
Closes #14158: merged test file resilience fix from 3.2.
-rwxr-xr-x | Lib/test/regrtest.py | 23 | ||||
-rw-r--r-- | Lib/test/test_base64.py | 5 | ||||
-rw-r--r-- | Lib/test/test_mailbox.py | 12 |
3 files changed, 30 insertions, 10 deletions
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 871ae61..44d3426 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -749,10 +749,10 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, if bad: print(count(len(bad), "test"), "failed:") printlist(bad) - if environment_changed: - print("{} altered the execution environment:".format( - count(len(environment_changed), "test"))) - printlist(environment_changed) + if environment_changed: + print("{} altered the execution environment:".format( + count(len(environment_changed), "test"))) + printlist(environment_changed) if skipped and not quiet: print(count(len(skipped), "test"), "skipped:") printlist(skipped) @@ -970,6 +970,7 @@ class saved_test_environment: 'multiprocessing.process._dangling', 'sysconfig._CONFIG_VARS', 'sysconfig._SCHEMES', 'packaging.command._COMMANDS', 'packaging.database_caches', + 'support.TESTFN', ) def get_sys_argv(self): @@ -1163,6 +1164,20 @@ class saved_test_environment: sysconfig._SCHEMES._sections.clear() sysconfig._SCHEMES._sections.update(saved[2]) + def get_support_TESTFN(self): + if os.path.isfile(support.TESTFN): + result = 'f' + elif os.path.isdir(support.TESTFN): + result = 'd' + else: + result = None + return result + def restore_support_TESTFN(self, saved_value): + if saved_value is None: + if os.path.isfile(support.TESTFN): + os.unlink(support.TESTFN) + elif os.path.isdir(support.TESTFN): + shutil.rmtree(support.TESTFN) def resource_info(self): for name in self.resources: diff --git a/Lib/test/test_base64.py b/Lib/test/test_base64.py index b02f86d..2569476 100644 --- a/Lib/test/test_base64.py +++ b/Lib/test/test_base64.py @@ -2,6 +2,7 @@ import unittest from test import support import base64 import binascii +import os import sys import subprocess @@ -274,6 +275,10 @@ class BaseXYTestCase(unittest.TestCase): class TestMain(unittest.TestCase): + def tearDown(self): + if os.path.exists(support.TESTFN): + os.unlink(support.TESTFN) + def get_output(self, *args, **options): args = (sys.executable, '-m', 'base64') + args return subprocess.check_output(args, **options) diff --git a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py index 4bb05a4..212ceb9 100644 --- a/Lib/test/test_mailbox.py +++ b/Lib/test/test_mailbox.py @@ -7,6 +7,7 @@ import email import email.message import re import io +import shutil import tempfile from test import 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) @@ -2028,6 +2024,10 @@ class MaildirTestCase(unittest.TestCase): def setUp(self): # create a new maildir mailbox to work with: self._dir = support.TESTFN + if os.path.isdir(self._dir): + shutil.rmtree(self._dir) + elif os.path.isfile(self._dir): + os.unlink(self._dir) os.mkdir(self._dir) os.mkdir(os.path.join(self._dir, "cur")) os.mkdir(os.path.join(self._dir, "tmp")) |