У меня есть некоторые функции, как это:использованием wsgiref.simple_server в UnitTests
URL = 'http://localhost:8080'
def func():
response = urlopen(URL)
return process(response)
И я хочу, чтобы проверить его с UnitTest.
я сделал что-то вроде этого:
from wsgiref.simple_server import make_server
def app_200_hello(environ,start_response):
stdout = StringIO('Hello world')
start_response("200 OK", [('Content-Type','text/plain')])
return [stdout.getvalue()]
s = make_server('localhost', 8080, app_200_hello)
class TestFunc(unittest.TestCase):
def setUp(self):
s.handle_request()
def test1(self):
r = func()
assert r, something
if __name__ == '__main__':
unittest.main()
В нАлАдкА() мои тесты остановить, потому что s.handle_request() ожидает запроса. Как я могу обойти это? Запустите s.handle_request() в другом потоке? или может быть другое решение ?
EDIT: Я хочу проверить функцию «Func», а не «app_200_hello»
Спасибо. Это похоже на то, что я хочу. Но werkzeug слишком велик. Является ли клиентский класс http://dev.pocoo.org/projects/werkzeug/browser/werkzeug/test.py#L551 независимым от другой части пакета werkzeug? –
Нет, это не является независимым, но это не большая зависимость для развития. На самом деле это крошечный. –
Ох. Я запутался. Я не хочу тестировать app_200_hello. Я хочу проверить «func» –