Exemplo n.º 1
0
def test_list_files_with_unreadable_file(tmp_path):
    file = tmp_path / 'foo.jpg'
    file.write_text('asdf')
    file_mode = os.stat(file).st_mode
    os.chmod(file, mode=0o222)
    try:
        with pytest.raises(errors.ReadError) as exc_info:
            utils.list_files(file)
        assert str(exc_info.value) == f'{file}: Permission denied'
    finally:
        os.chmod(file, mode=file_mode)
Exemplo n.º 2
0
def test_list_files_with_unreadable_directory(tmp_path):
    dir = tmp_path / 'dir'
    dir.mkdir()
    file = dir / 'foo.jpg'
    file.write_text('asdf')
    dir_mode = os.stat(dir).st_mode
    os.chmod(dir, mode=0o222)
    try:
        for path in (dir, file):
            with pytest.raises(errors.ReadError) as exc_info:
                utils.list_files(path)
            assert str(exc_info.value) == f'{path}: Permission denied'
    finally:
        os.chmod(dir, mode=dir_mode)
Exemplo n.º 3
0
def test_list_files_with_file(testdir):
    files = [
        Path(filepath).relative_to(testdir.parent)
        for filepath in utils.list_files(testdir / 'foo/empty')
    ]
    exp = ['base/foo/empty']
    assert files == [Path(p) for p in exp]
Exemplo n.º 4
0
def test_list_files_with_directory(testdir):
    files = [Path(filepath).relative_to(testdir.parent)
             for filepath in utils.list_files(testdir)]
    exp = sorted(['base/foo/.empty', 'base/foo/.not_empty', 'base/foo/empty', 'base/foo/not_empty',
                  'base/.bar/.empty', 'base/.bar/.not_empty', 'base/.bar/empty', 'base/.bar/not_empty',
                  'base/.bar/baz/.empty', 'base/.bar/baz/.not_empty', 'base/.bar/baz/empty', 'base/.bar/baz/not_empty'])
    assert files == [Path(p) for p in exp]
Exemplo n.º 5
0
def test_filter_files_without_empty_files(testdir):
    filelist = [str(Path(filepath).relative_to(testdir.parent))
                for filepath in utils.list_files(testdir)]
    cwd = os.getcwd()
    try:
        os.chdir(testdir.parent)
        assert utils.filter_files(filelist, empty=False) == sorted(['base/foo/.not_empty', 'base/foo/not_empty',
                                                                    'base/.bar/.not_empty', 'base/.bar/not_empty',
                                                                    'base/.bar/baz/.not_empty', 'base/.bar/baz/not_empty'])
    finally:
        os.chdir(cwd)