Я пишу модуль Python, который завершает определенный API веб-сервисов. Это все REST, поэтому относительно просто реализовать.Использование SimpleHTTPServer для модульного тестирования
Однако я обнаружил проблему, когда дело доходит до модульного тестирования: поскольку я не запускаю службы, для которых я создал этот модуль, я не хочу их забивать, но в то же время мне нужно получить данные для выполнения моих тестов. Я посмотрел на SimpleHTTPServer, и все будет в порядке.
Я решил часть проблемы, которую я имел, но теперь, поскольку я не могу прекратить поток, я получаю проблемы с «адресом, который уже используется» при запуске тестового приложения более одного раза.
Вот некоторые примеры кода
PORT = 8001
handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), handler)
httpd_thread = threading.Thread(target=httpd.serve_forever)
httpd_thread.setDaemon(True)
httpd_thread.start()
api_data = urllib.urlopen("http://localhost:8001/post/index.json")
print "Data start:"
print json.load(api_data)
Где «index.json» является фиктивный JSON-файл я сделал, который заменяет реальную вещь. Как я могу чистить вещи изящно после завершения программы?
SimpleHTTPServer действительно должен быть самым простым способом. Какие проблемы у вас есть? – balpha
Я передумал, надеюсь, теперь все ясно. – Einar