From: Tim Peters Date: Sat, 5 Oct 2002 17:54:56 +0000 (+0000) Subject: This test fails on Win98, which is fine, but when it failed it left X-Git-Tag: v2.3c1~3875 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1ee401fcf6a5b561cbed54051077784a11d9d438;p=thirdparty%2FPython%2Fcpython.git This test fails on Win98, which is fine, but when it failed it left a junk directory behind that caused 4 other tests to fail later. Now it cleans up after itself, and the 4 bogus later failures don't happen. --- diff --git a/Lib/test/test_pep277.py b/Lib/test/test_pep277.py index f543a5a616c8..bd11226e243a 100644 --- a/Lib/test/test_pep277.py +++ b/Lib/test/test_pep277.py @@ -6,7 +6,7 @@ from test.test_support import TESTFN, TestSkipped, TestFailed, run_suite try: from nt import _getfullpathname except ImportError: - raise TestSkipped, "test works only on NT" + raise TestSkipped, "test works only on NT+" filenames = [ "abc", @@ -20,9 +20,19 @@ filenames = [ unicode("曨שんдΓß","utf-8"), ] +# Destroy directory dirname and all files under it, to one level. +def deltree(dirname): + # Don't hide legitimate errors: if one of these suckers exists, it's + # an error if we can't remove it. + if os.path.exists(dirname): + for fname in os.listdir(dirname): + os.unlink(os.path.join(dirname, fname)) + os.rmdir(dirname) + class UnicodeFileTests(unittest.TestCase): + files = [os.path.join(TESTFN, f) for f in filenames] + def setUp(self): - self.files = [os.path.join(TESTFN, f) for f in filenames] try: os.mkdir(TESTFN) except OSError: @@ -34,9 +44,7 @@ class UnicodeFileTests(unittest.TestCase): os.stat(name) def tearDown(self): - for name in self.files: - os.unlink(name) - os.rmdir(TESTFN) + deltree(TESTFN) def _apply_failure(self, fn, filename, expected_exception, check_fn_in_exception = True): @@ -100,7 +108,10 @@ class UnicodeFileTests(unittest.TestCase): def test_main(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(UnicodeFileTests)) - run_suite(suite) + try: + run_suite(suite) + finally: + deltree(TESTFN) if __name__ == "__main__": test_main()