[lang-ref] ( copy_directory_tree ) ( python )

def test_copy_directory_tree(pushd):
    # shutil.copytree(dir1, dir2)
    import shutil
    os.makedirs('dir1/sub1/sub2/sub3')

    shutil.copytree('dir1', 'dir2')

    assert os.path.isdir('dir1/sub1/sub2/sub3')
    assert os.path.isdir('dir2/sub1/sub2/sub3')

    os.mkdir('dir3')
    with pytest.raises(FileExistsError):
        shutil.copytree('dir1', 'dir3')
    assert not os.path.isdir('dir3/sub1/sub2/sub3')

    shutil.copytree('dir1', 'dir3', dirs_exist_ok=True)
    assert os.path.isdir('dir3/sub1/sub2/sub3')