You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			24 lines
		
	
	
		
			641 B
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			24 lines
		
	
	
		
			641 B
		
	
	
	
		
			Python
		
	
| import stat
 | |
| import sys
 | |
| from unittest.mock import Mock
 | |
| 
 | |
| from setuptools import _shutil
 | |
| 
 | |
| 
 | |
| def test_rmtree_readonly(monkeypatch, tmp_path):
 | |
|     """Verify onerr works as expected"""
 | |
| 
 | |
|     tmp_dir = tmp_path / "with_readonly"
 | |
|     tmp_dir.mkdir()
 | |
|     some_file = tmp_dir.joinpath("file.txt")
 | |
|     some_file.touch()
 | |
|     some_file.chmod(stat.S_IREAD)
 | |
| 
 | |
|     expected_count = 1 if sys.platform.startswith("win") else 0
 | |
|     chmod_fn = Mock(wraps=_shutil.attempt_chmod_verbose)
 | |
|     monkeypatch.setattr(_shutil, "attempt_chmod_verbose", chmod_fn)
 | |
| 
 | |
|     _shutil.rmtree(tmp_dir)
 | |
|     assert chmod_fn.call_count == expected_count
 | |
|     assert not tmp_dir.is_dir()
 |