Я пишу пару простых приложений 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 - но это кажется огромной проблемой.
Спасибо.