174
174
eventlet.sleep(0) # give previous server a chance to start
176
176
greenthread.kill(self.killer)
177
eventlet.sleep(0) # give killer a chance to kill
179
178
new_kwargs = dict(max_size=128,
180
179
log=self.logfile,
952
951
self.assertEqual(headers['connection'], 'close')
953
952
self.assert_('unicode' in body)
956
sock = eventlet.listen(('::1', 0), family=socket.AF_INET6)
957
except (socket.gaierror, socket.error): # probably no ipv6
960
# first thing the server does is try to log the IP it's bound to
963
server = wsgi.server(sock=sock, log=log, site=Site())
966
eventlet.spawn_n(run_server)
967
logval = log.getvalue()
970
logval = log.getvalue()
971
if 'broked' in logval:
972
self.fail('WSGI server raised exception with ipv6 socket')
974
def test_debug(self):
975
self.spawn_server(debug=False)
976
def crasher(env, start_response):
977
raise RuntimeError("intentional crash")
978
self.site.application = crasher
980
sock = eventlet.connect(('localhost', self.port))
981
fd = sock.makefile('w')
982
fd.write('GET / HTTP/1.1\r\nHost: localhost\r\n\r\n')
984
response_line, headers, body = read_http(sock)
985
self.assert_(response_line.startswith('HTTP/1.1 500 Internal Server Error'))
986
self.assertEqual(body, '')
987
self.assertEqual(headers['connection'], 'close')
988
self.assert_('transfer-encoding' not in headers)
990
# verify traceback when debugging enabled
991
self.spawn_server(debug=True)
992
self.site.application = crasher
993
sock = eventlet.connect(('localhost', self.port))
994
fd = sock.makefile('w')
995
fd.write('GET / HTTP/1.1\r\nHost: localhost\r\n\r\n')
997
response_line, headers, body = read_http(sock)
998
self.assert_(response_line.startswith('HTTP/1.1 500 Internal Server Error'))
999
self.assert_('intentional crash' in body)
1000
self.assert_('RuntimeError' in body)
1001
self.assert_('Traceback' in body)
1002
self.assertEqual(headers['connection'], 'close')
1003
self.assert_('transfer-encoding' not in headers)
955
1006
def read_headers(sock):
956
1007
fd = sock.makefile()
1136
1187
signal.alarm(0)
1137
1188
signal.signal(signal.SIGALRM, signal.SIG_DFL)
1139
assert not got_signal, "caught alarm signal. infinite loop detected."
1141
def test_ipv6(self):
1143
sock = eventlet.listen(('::1', 0), family=socket.AF_INET6)
1144
except (socket.gaierror, socket.error): # probably no ipv6
1147
# first thing the server does is try to log the IP it's bound to
1150
server = wsgi.server(sock=sock, log=log, site=Site())
1153
eventlet.spawn_n(run_server)
1154
logval = log.getvalue()
1157
logval = log.getvalue()
1158
if 'broked' in logval:
1159
self.fail('WSGI server raised exception with ipv6 socket')
1190
assert not got_signal, "caught alarm signal. infinite loop detected."
1162
1193
if __name__ == '__main__':