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()
 |