|  | @@ -0,0 +1,110 @@
 | 
	
		
			
				|  |  | +import pytest
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import osex
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import os
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_rename(tmpdir):
 | 
	
		
			
				|  |  | +    os.chdir(tmpdir.strpath)
 | 
	
		
			
				|  |  | +    open('a', 'w').close()
 | 
	
		
			
				|  |  | +    assert os.path.exists('a')
 | 
	
		
			
				|  |  | +    osex.renames('a', 'b')
 | 
	
		
			
				|  |  | +    assert not os.path.exists('a')
 | 
	
		
			
				|  |  | +    assert os.path.exists('b')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_prune_source_dirs(tmpdir):
 | 
	
		
			
				|  |  | +    os.chdir(tmpdir.strpath)
 | 
	
		
			
				|  |  | +    source_dir_path = os.path.join('1', '2')
 | 
	
		
			
				|  |  | +    os.makedirs(source_dir_path)
 | 
	
		
			
				|  |  | +    source_file_path = os.path.join(source_dir_path, 'a')
 | 
	
		
			
				|  |  | +    open(source_file_path, 'w').close()
 | 
	
		
			
				|  |  | +    assert os.path.isdir(source_dir_path)
 | 
	
		
			
				|  |  | +    assert os.path.exists(source_file_path)
 | 
	
		
			
				|  |  | +    osex.renames('1/2/a', 'b')
 | 
	
		
			
				|  |  | +    assert os.listdir(tmpdir.strpath) == ['b']
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_create_destination_dirs(tmpdir):
 | 
	
		
			
				|  |  | +    os.chdir(tmpdir.strpath)
 | 
	
		
			
				|  |  | +    open('a', 'w').close()
 | 
	
		
			
				|  |  | +    assert os.listdir(tmpdir.strpath) == ['a']
 | 
	
		
			
				|  |  | +    osex.renames('a', '1/2/b')
 | 
	
		
			
				|  |  | +    assert os.listdir(tmpdir.strpath) == ['1']
 | 
	
		
			
				|  |  | +    assert os.path.isdir('1/2')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('1/2/b')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_backup_file(tmpdir):
 | 
	
		
			
				|  |  | +    os.chdir(tmpdir.strpath)
 | 
	
		
			
				|  |  | +    open('src', 'w').close()
 | 
	
		
			
				|  |  | +    open('dest', 'w').close()
 | 
	
		
			
				|  |  | +    assert os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('dest')
 | 
	
		
			
				|  |  | +    osex.renames('src', 'dest', backup = True, backup_suffix = "~")
 | 
	
		
			
				|  |  | +    assert not os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('dest')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('dest~')
 | 
	
		
			
				|  |  | +    assert len(os.listdir(tmpdir.strpath)) == 2
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_backup_directory(tmpdir):
 | 
	
		
			
				|  |  | +    os.chdir(tmpdir.strpath)
 | 
	
		
			
				|  |  | +    open('src', 'w').close()
 | 
	
		
			
				|  |  | +    os.mkdir('dest')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isdir('dest')
 | 
	
		
			
				|  |  | +    osex.renames('src', 'dest', backup = True, backup_suffix = "~")
 | 
	
		
			
				|  |  | +    assert not os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('dest')
 | 
	
		
			
				|  |  | +    assert os.path.isdir('dest~')
 | 
	
		
			
				|  |  | +    assert len(os.listdir(tmpdir.strpath)) == 2
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_backup_directory_symlink(tmpdir):
 | 
	
		
			
				|  |  | +    os.chdir(tmpdir.strpath)
 | 
	
		
			
				|  |  | +    open('src', 'w').close()
 | 
	
		
			
				|  |  | +    os.mkdir('dir')
 | 
	
		
			
				|  |  | +    os.symlink('dir', 'dest')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isdir('dir')
 | 
	
		
			
				|  |  | +    assert os.path.islink('dest')
 | 
	
		
			
				|  |  | +    assert os.path.isdir('dest')
 | 
	
		
			
				|  |  | +    osex.renames('src', 'dest', backup = True, backup_suffix = "~")
 | 
	
		
			
				|  |  | +    assert not os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isdir('dir')
 | 
	
		
			
				|  |  | +    assert os.path.islink('dest~')
 | 
	
		
			
				|  |  | +    assert os.path.isdir('dest~')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('dest')
 | 
	
		
			
				|  |  | +    assert len(os.listdir(tmpdir.strpath)) == 3
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_override_file(tmpdir):
 | 
	
		
			
				|  |  | +    os.chdir(tmpdir.strpath)
 | 
	
		
			
				|  |  | +    open('src', 'w').close()
 | 
	
		
			
				|  |  | +    open('dest', 'w').close()
 | 
	
		
			
				|  |  | +    assert os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('dest')
 | 
	
		
			
				|  |  | +    osex.renames('src', 'dest', backup = False)
 | 
	
		
			
				|  |  | +    assert not os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('dest')
 | 
	
		
			
				|  |  | +    assert len(os.listdir(tmpdir.strpath)) == 1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_attempt_override_directory(tmpdir):
 | 
	
		
			
				|  |  | +    os.chdir(tmpdir.strpath)
 | 
	
		
			
				|  |  | +    open('src', 'w').close()
 | 
	
		
			
				|  |  | +    os.mkdir('dest')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isdir('dest')
 | 
	
		
			
				|  |  | +    with pytest.raises(OSError):
 | 
	
		
			
				|  |  | +        osex.renames('src', 'dest', backup = False)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def test_override_directory_symlink(tmpdir):
 | 
	
		
			
				|  |  | +    os.chdir(tmpdir.strpath)
 | 
	
		
			
				|  |  | +    open('src', 'w').close()
 | 
	
		
			
				|  |  | +    os.mkdir('dir')
 | 
	
		
			
				|  |  | +    os.symlink('dir', 'link')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isdir('dir')
 | 
	
		
			
				|  |  | +    assert os.path.islink('link')
 | 
	
		
			
				|  |  | +    assert os.path.isdir('link')
 | 
	
		
			
				|  |  | +    osex.renames('src', 'link', backup = False)
 | 
	
		
			
				|  |  | +    assert not os.path.isfile('src')
 | 
	
		
			
				|  |  | +    assert os.path.isdir('dir')
 | 
	
		
			
				|  |  | +    assert not os.path.islink('link')
 | 
	
		
			
				|  |  | +    assert os.path.isfile('link')
 | 
	
		
			
				|  |  | +    assert len(os.listdir(tmpdir.strpath)) == 2
 |