]> granicus.if.org Git - python/commitdiff
This test fails on Win98, which is fine, but when it failed it left
authorTim Peters <tim.peters@gmail.com>
Sat, 5 Oct 2002 17:54:56 +0000 (17:54 +0000)
committerTim Peters <tim.peters@gmail.com>
Sat, 5 Oct 2002 17:54:56 +0000 (17:54 +0000)
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.

Lib/test/test_pep277.py

index f543a5a616c8e720edf3f60ef071c21cd11b2479..bd11226e243a0ba60e3fd2a1880892c904fbe952 100644 (file)
@@ -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()