@@ -510,14 +510,20 @@ async def test_delete(jp_contents_manager):
510510 await ensure_async (cm .get (path ))
511511
512512
513- @pytest .mark .parametrize ("delete_to_trash, always_delete, error" , (
514- [True , True , False ],
515- # on linux test folder won't be on home folder => _check_trash will be False
516- [True , False , True if sys .platform in {"win32" , "linux" } else False ],
517- [False , True , False ],
518- [False , False , True ],
519- ))
520- async def test_delete_non_empty_folder (delete_to_trash , always_delete , error , jp_contents_manager ):
513+ @pytest .mark .parametrize (
514+ "delete_to_trash, always_delete, error" ,
515+ (
516+ [True , True , False ],
517+ # on linux test folder may not be on home folder drive
518+ # => if this is the case, _check_trash will be False
519+ [True , False , None ],
520+ [False , True , False ],
521+ [False , False , True ],
522+ ),
523+ )
524+ async def test_delete_non_empty_folder (
525+ delete_to_trash , always_delete , error , jp_contents_manager
526+ ):
521527 cm = jp_contents_manager
522528 cm .delete_to_trash = delete_to_trash
523529 cm .always_delete_dir = always_delete
@@ -527,8 +533,20 @@ async def test_delete_non_empty_folder(delete_to_trash, always_delete, error, jp
527533 await make_populated_dir (cm , dir )
528534 await check_populated_dir_files (cm , dir )
529535
536+ if error is None :
537+ error = False
538+ if sys .platform == "win32" :
539+ error = True
540+ elif sys .platform == "linux" :
541+ file_dev = os .stat (cm .root_dir ).st_dev
542+ home_dev = os .stat (os .path .expanduser ("~" )).st_dev
543+ error = file_dev != home_dev
544+
530545 if error :
531- with pytest .raises (HTTPError , match = r"HTTP 400: Bad Request \(Directory .*?to_delete not empty\)" ):
546+ with pytest .raises (
547+ HTTPError ,
548+ match = r"HTTP 400: Bad Request \(Directory .*?to_delete not empty\)" ,
549+ ):
532550 await ensure_async (cm .delete_file (dir ))
533551 else :
534552 await ensure_async (cm .delete_file (dir ))
0 commit comments