awips2/pythonPackages/werkzeug/tests/test_serving.py
root 9f19e3f712 Initial revision of AWIPS2 11.9.0-7p5
Former-commit-id: 64fa9254b946eae7e61bbc3f513b7c3696c4f54f
2012-01-06 08:55:05 -06:00

56 lines
1.5 KiB
Python
Executable file

# -*- coding: utf-8 -*-
"""
werkzeug.serving test
~~~~~~~~~~~~~~~~~~~~
:copyright: (c) 2010 by the Werkzeug Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
"""
import time
import urllib
from werkzeug import serving, test_app, __version__ as version
from threading import Thread
real_make_server = serving.make_server
def run_dev_server(application):
servers = []
def tracking_make_server(*args, **kwargs):
srv = real_make_server(*args, **kwargs)
servers.append(srv)
return srv
serving.make_server = tracking_make_server
try:
t = Thread(target=serving.run_simple, args=('localhost', 0, application))
t.setDaemon(True)
t.start()
time.sleep(0.25)
finally:
serving.make_server = real_make_server
if not servers:
return None, None
server ,= servers
ip, port = server.socket.getsockname()[:2]
if ':' in ip:
ip = '[%s]' % ip
return server, '%s:%d' % (ip, port)
def test_serving():
"""Test server"""
server, addr = run_dev_server(test_app)
rv = urllib.urlopen('http://%s/?foo=bar&baz=blah' % addr).read()
assert 'WSGI Information' in rv
assert 'foo=bar&baz=blah' in rv
assert ('Werkzeug/%s' % version) in rv
def test_broken_app():
"""Broken apps in server"""
def broken_app(environ, start_response):
1/0
server, addr = run_dev_server(broken_app)
rv = urllib.urlopen('http://%s/?foo=bar&baz=blah' % addr).read()
assert 'Internal Server Error' in rv