Мне нужно расширить код Python, который имеет много жестко закодированных путей
Чтобы не испортить все, я хочу создать модульные тесты для кода перед моими изменениями: он будет служить нерегрессионным тестом для моего нового кода (который не будет иметь жестко закодированных путей)
Но из-за жестко закодированного системного пути я проведу свой тест внутри дерева chroot (я не хочу загрязнять мой системный каталог)
Моя проблема в том, что я хочу настроить chroot только для тестирования, и это можно сделать с помощью os.chroot только с правами суперпользователя (и я не хочу запускать тестовые сценарии от имени root)
На самом деле мне просто нужна директория с поддельным деревом, чтобы при получении кода, который open('/etc/resolv.conf)
, получал поддельный resolv.conf, а не системный
Я, очевидно, не хочу заменять себя жестко закодированным путем в коде, потому что это не будет реальный регрессионный тест
У вас есть идеи, как этого добиться?
Спасибо
Обратите внимание, что все пути доступны для чтения с помощью учетной записи пользователя