У меня есть рекурсивный код для сбора тестов из заданного каталога. Он опирается на несколько функций: isdir, isfile и доступ к файлам. Ожидается, что каталоги могут быть перечислены с помощью os.listdir.
Чтобы протестировать эту функцию, мне нужно смоделировать множество функций очень нетривиальным способом. Есть ли способ кратко издеваться над всеми вещами, связанными с os/os.path, с заданным списком файлов? Что-то вроде «mock_subdir(example_in_tar_gz):
» или с каким-то DSL для описания фиктивной структуры дерева каталогов.
Интересующая функция:
def gather_tests(path):
if os.path.isdir(path):
filelist = [os.path.join(path, f) for f in os.listdir(path)]
filelist.sort()
all_files = map(gather_tests, filelist)
return filter(None, all_files)
elif os.path.isfile(path) and os.access(path, os.X_OK):
return path
else:
return None
Спасибо.