Я пишу пару простых приложений WSGI, чтобы получить представление о стандарте, и я хочу сказать, что мои приложения работают так, как ожидалось. Теперь я пытаюсь найти лучший способ начать и остановить сервер, на котором размещаются эти приложения.Лучший способ запуска функциональных тестов приложения WSGI?
Моя первая мысль была, чтобы запустить SimpleServer
из wsgiref
в методе setUp
и закрыть его в методе tearDown
. Поскольку serve_forever
блоков, я сделал это в отдельном Thread
. К сожалению, если я использую serve_forever
для запуска сервера, вторичная нить, в которой он находится, никогда не умирает, и получается, что threading
не раскрывает способ убить Thread
.
Теперь я рассматриваю используя что-то вроде этого, как моя run
реализации в удостоверении сервер Thread
:
while keep_going:
httpd.handle_request()
где keep_going
является переменным, я принялся True
в моем setUp
и установите False
в моем tearDown
.
Есть ли лучший способ? Я надеялся написать эти приложения и тесты, используя только стандартную библиотеку, - лучше понять, что я абстрагирую, когда я использую lib/framework, но это кажется ужасной проблемой.
Спасибо.
По моему опыту, введение зависимости (по крайней мере для тестирования) на WebTest хорошо, стоит того. Удачи! –