У моего работодателя есть специальный модуль1, который мы используем для внутреннего тестирования устройства/системы; однако автор этого модуля здесь больше не работает, и меня попросили протестировать с ним некоторые устройства.
Проблема в том, что pyfoo
требует старой версии twisted
(v8.2.0) и импортирует twisted
в 33 различных файлах. Я попытался запустить модульные тесты pyfoo
в версии 11.0.0, но даже не вижу пакетов TCP SYN2. К сожалению, на моем тестовом Linux-сервере уже установлен twisted v11.0.0, и у меня есть собственный код, который зависит в теме.
Я ломал голову, чтобы обойти это, но я могу придумать только следующие варианты:
Вариант А. Установите новую версию Python, установите virtualenv
, а затем установите старую версию twisted
под virtualenv
. Запускайте тесты, требующие pyfoo
, только в этой новой версии Python.
Вариант Б. Отредактируйте все 33 файла следующим образом: DIR = '../'; sys.path.insert(0, DIR)
и установите старую версию python в соответствующий каталог под исходным кодом.
Вариант C. Попытка исправить pyfoo
для использования версии 11.0.03
Есть ли какие-то варианты, которые я упускаю? Есть ли более элегантный способ решить эту проблему, кроме варианта А, описанного выше?
КОНЕЧНЫЕ ПРИМЕЧАНИЯ:
- Давайте назовем его
pyfoo
ради аргумента - Модульные тесты подключаются к одному из наших локальных лабораторных серверов и проверяют основные функции telnet.
- Этот вариант почти не стартовый...
pyfoo
нетривиальный, да и срок на эту работу у меня короткий.
/chroot/python/site-packages
, а затемchroot
в этот каталог перед выполнением? тесты? - person This   schedule 22.06.2011