@@ -317,7 +317,7 @@ def test_rmtree_works_on_junctions(self):
317
317
self .assertTrue (os .path .exists (dir3 ))
318
318
self .assertTrue (os .path .exists (file1 ))
319
319
320
- def test_rmtree_errors_onerror (self ):
320
+ def test_rmtree_errors (self ):
321
321
# filename is guaranteed not to exist
322
322
filename = tempfile .mktemp (dir = self .mkdtemp ())
323
323
self .assertRaises (FileNotFoundError , shutil .rmtree , filename )
@@ -326,15 +326,28 @@ def test_rmtree_errors_onerror(self):
326
326
327
327
# existing file
328
328
tmpdir = self .mkdtemp ()
329
- write_file ((tmpdir , "tstfile" ), "" )
330
329
filename = os .path .join (tmpdir , "tstfile" )
330
+ write_file (filename , "" )
331
331
with self .assertRaises (NotADirectoryError ) as cm :
332
332
shutil .rmtree (filename )
333
333
self .assertEqual (cm .exception .filename , filename )
334
334
self .assertTrue (os .path .exists (filename ))
335
335
# test that ignore_errors option is honored
336
336
shutil .rmtree (filename , ignore_errors = True )
337
337
self .assertTrue (os .path .exists (filename ))
338
+
339
+ self .assertRaises (TypeError , shutil .rmtree , None )
340
+ self .assertRaises (TypeError , shutil .rmtree , None , ignore_errors = True )
341
+ exc = TypeError if shutil .rmtree .avoids_symlink_attacks else NotImplementedError
342
+ with self .assertRaises (exc ):
343
+ shutil .rmtree (filename , dir_fd = 'invalid' )
344
+ with self .assertRaises (exc ):
345
+ shutil .rmtree (filename , dir_fd = 'invalid' , ignore_errors = True )
346
+
347
+ def test_rmtree_errors_onerror (self ):
348
+ tmpdir = self .mkdtemp ()
349
+ filename = os .path .join (tmpdir , "tstfile" )
350
+ write_file (filename , "" )
338
351
errors = []
339
352
def onerror (* args ):
340
353
errors .append (args )
@@ -350,23 +363,9 @@ def onerror(*args):
350
363
self .assertEqual (errors [1 ][2 ][1 ].filename , filename )
351
364
352
365
def test_rmtree_errors_onexc (self ):
353
- # filename is guaranteed not to exist
354
- filename = tempfile .mktemp (dir = self .mkdtemp ())
355
- self .assertRaises (FileNotFoundError , shutil .rmtree , filename )
356
- # test that ignore_errors option is honored
357
- shutil .rmtree (filename , ignore_errors = True )
358
-
359
- # existing file
360
366
tmpdir = self .mkdtemp ()
361
- write_file ((tmpdir , "tstfile" ), "" )
362
367
filename = os .path .join (tmpdir , "tstfile" )
363
- with self .assertRaises (NotADirectoryError ) as cm :
364
- shutil .rmtree (filename )
365
- self .assertEqual (cm .exception .filename , filename )
366
- self .assertTrue (os .path .exists (filename ))
367
- # test that ignore_errors option is honored
368
- shutil .rmtree (filename , ignore_errors = True )
369
- self .assertTrue (os .path .exists (filename ))
368
+ write_file (filename , "" )
370
369
errors = []
371
370
def onexc (* args ):
372
371
errors .append (args )
0 commit comments