on_rm_rf_error: ignore os.open (no warning) (#6074)
on_rm_rf_error: ignore os.open (no warning)
This commit is contained in:
		
						commit
						7ed33996f1
					
				|  | @ -0,0 +1 @@ | |||
| pytester: fix order of arguments in ``rm_rf`` warning when cleaning up temporary directories, and do not emit warnings for errors with ``os.open``. | ||||
|  | @ -68,10 +68,11 @@ def on_rm_rf_error(func, path: str, exc, *, start_path: Path) -> bool: | |||
|         return False | ||||
| 
 | ||||
|     if func not in (os.rmdir, os.remove, os.unlink): | ||||
|         if func not in (os.open,): | ||||
|             warnings.warn( | ||||
|                 PytestWarning( | ||||
|                     "(rm_rf) unknown function {} when removing {}:\n{}: {}".format( | ||||
|                     path, func, exctype, excvalue | ||||
|                         func, path, exctype, excvalue | ||||
|                     ) | ||||
|                 ) | ||||
|             ) | ||||
|  |  | |||
|  | @ -388,11 +388,21 @@ class TestRmRf: | |||
|         assert not on_rm_rf_error(None, str(fn), exc_info, start_path=tmp_path) | ||||
| 
 | ||||
|         # unknown function | ||||
|         with pytest.warns(pytest.PytestWarning): | ||||
|         with pytest.warns( | ||||
|             pytest.PytestWarning, | ||||
|             match=r"^\(rm_rf\) unknown function None when removing .*foo.txt:\nNone: ", | ||||
|         ): | ||||
|             exc_info = (None, PermissionError(), None) | ||||
|             on_rm_rf_error(None, str(fn), exc_info, start_path=tmp_path) | ||||
|             assert fn.is_file() | ||||
| 
 | ||||
|         # ignored function | ||||
|         with pytest.warns(None) as warninfo: | ||||
|             exc_info = (None, PermissionError(), None) | ||||
|             on_rm_rf_error(os.open, str(fn), exc_info, start_path=tmp_path) | ||||
|             assert fn.is_file() | ||||
|         assert not [x.message for x in warninfo] | ||||
| 
 | ||||
|         exc_info = (None, PermissionError(), None) | ||||
|         on_rm_rf_error(os.unlink, str(fn), exc_info, start_path=tmp_path) | ||||
|         assert not fn.is_file() | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue