- Bug #981530: Fix UnboundLocalError in shutil.rmtree(). This affects
the documented behavior: the function passed to the onerror()
handler can now also be os.listdir.
[I could've sworn I checked this in, but apparently I didn't, or it
got lost???]
diff --git a/Doc/lib/libshutil.tex b/Doc/lib/libshutil.tex
index a84fca9..5dd1b6c 100644
--- a/Doc/lib/libshutil.tex
+++ b/Doc/lib/libshutil.tex
@@ -90,7 +90,7 @@
If \var{onerror} is provided, it must be a callable that accepts
three parameters: \var{function}, \var{path}, and \var{excinfo}.
The first parameter, \var{function}, is the function which raised
- the exception; it will be \function{os.remove()} or
+ the exception; it will be \function{os.listdir()}, \function{os.remove()} or
\function{os.rmdir()}. The second parameter, \var{path}, will be
the path name passed to \var{function}. The third parameter,
\var{excinfo}, will be the exception information return by
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
index 05f34d8..bcae72f 100644
--- a/Lib/test/test_shutil.py
+++ b/Lib/test/test_shutil.py
@@ -13,6 +13,7 @@
filename = tempfile.mktemp()
self.assertRaises(OSError, shutil.rmtree, filename)
self.assertEqual(shutil.rmtree(filename, True), None)
+ shutil.rmtree(filename, False, lambda func, arg, exc: None)
def test_dont_move_dir_in_itself(self):
src_dir = tempfile.mkdtemp()