]> granicus.if.org Git - python/commitdiff
Issue #19629: Fix support.rmtree(), use os.lstat() to check if the file is a
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 21 Jul 2014 17:18:12 +0000 (19:18 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Mon, 21 Jul 2014 17:18:12 +0000 (19:18 +0200)
directory, not os.path.isdir()

Lib/test/support/__init__.py

index c1a187d3bb6cf0b89ce240d80090269f8f8ad937..d321bb4d6b8a7feb6d1d1eb93204cfd1ae0f1c9c 100644 (file)
@@ -316,7 +316,13 @@ if sys.platform.startswith("win"):
         def _rmtree_inner(path):
             for name in os.listdir(path):
                 fullname = os.path.join(path, name)
-                if os.path.isdir(fullname):
+                try:
+                    mode = os.lstat(fullname).st_mode
+                except OSError as exc:
+                    print("support.rmtree(): os.lstat(%r) failed with %s" % (fullname, exc),
+                          file=sys.__stderr__)
+                    mode = 0
+                if stat.S_ISDIR(mode):
                     _waitfor(_rmtree_inner, fullname, waitall=True)
                     os.rmdir(fullname)
                 else: