В моем коде есть os.remove()
, который иногда, при локальном запуске, дает сбой из-за OSError 13 - Permission Denied
- поэтому я настроил try-except
. Мое автоматическое тестирование (Travis CI) выполняется на Linux экземплярах виртуальных машин, поэтому я не знаю, как заставить os.remove
терпеть неудачу там ради покрытия.
Какие у меня варианты - как заставить блок except
выполнить? В качестве альтернативы, как удалить или защитить файл с помощью Python?
Примечание : удаление его из кода теста перед вызовом метода теста не является вариантом; сам метод выбирает файлы для удаления:
from pathlib import Path
paths = [str(x) for x in Path("directory/").iterdir() if 'abc' in x.stem]
if len(paths) > 0: # if files are removed beforehand, len(paths) == 0
try:
[os.remove(p) for p in paths]
except:
pass # stuff here