我有一些像这样的功能:
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()
在 setUp() 我的测试停止,因为 s.handle_request() 等待请求。我怎样才能解决这个问题?在另一个线程中运行 s.handle_request()?或者也许还有另一种解决方案?
编辑:我想测试“func”功能,而不是“app_200_hello”