diff options
| author | Sergey Shepelev <temotor@gmail.com> | 2016-06-01 13:42:48 +0500 |
|---|---|---|
| committer | Sergey Shepelev <temotor@gmail.com> | 2016-06-01 16:02:17 +0500 |
| commit | 204a4c330db5742b9b37a0173c524c84d0816579 (patch) | |
| tree | 8d2aacfce084ef9c816767b0064233ee6384c45f | |
| parent | 752a4a84abda8eaf44d7c7999aba912731dc1190 (diff) | |
| download | eventlet-qwe123.tar.gz | |
tests: clean out unittest.main()qwe123
| -rw-r--r-- | eventlet/wsgi.py | 5 | ||||
| -rw-r--r-- | tests/semaphore_test.py | 5 | ||||
| -rw-r--r-- | tests/test__event.py | 5 | ||||
| -rw-r--r-- | tests/test__greenness.py | 31 | ||||
| -rw-r--r-- | tests/test__refcount.py | 5 | ||||
| -rw-r--r-- | tests/test__socket_errors.py | 4 | ||||
| -rw-r--r-- | tests/wsgi_test.py | 41 |
7 files changed, 52 insertions, 44 deletions
diff --git a/eventlet/wsgi.py b/eventlet/wsgi.py index 9d02d12..db44ef6 100644 --- a/eventlet/wsgi.py +++ b/eventlet/wsgi.py @@ -627,14 +627,18 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler): return env def finish(self): + print('http.finish') try: BaseHTTPServer.BaseHTTPRequestHandler.finish(self) except socket.error as e: + print('http.finish error: '+str(e)) # Broken pipe, connection reset by peer if support.get_errno(e) not in BROKEN_SOCK: raise + print('http.finish attempt shutdown+close') greenio.shutdown_safe(self.connection) self.connection.close() + print('http.finish end shutdown+close') def handle_expect_100(self): return True @@ -718,6 +722,7 @@ class Server(BaseHTTPServer.HTTPServer): try: proto.__init__(sock, address, self) except socket.timeout: + print('socket.timeout') # Expected exceptions are not exceptional sock.close() # similar to logging "accepted" in server() diff --git a/tests/semaphore_test.py b/tests/semaphore_test.py index 53a81f0..daf83f6 100644 --- a/tests/semaphore_test.py +++ b/tests/semaphore_test.py @@ -1,5 +1,4 @@ import time -import unittest import eventlet from eventlet import semaphore @@ -62,7 +61,3 @@ def test_semaphore_contention(): t2.kill() assert abs(counts[0] - counts[1]) < int(min(counts) * 0.1), counts - - -if __name__ == '__main__': - unittest.main() diff --git a/tests/test__event.py b/tests/test__event.py index 065e13b..17c709e 100644 --- a/tests/test__event.py +++ b/tests/test__event.py @@ -1,4 +1,3 @@ -import unittest from eventlet import spawn, sleep, with_timeout from eventlet.event import Event import eventlet @@ -39,7 +38,3 @@ class TestEvent(LimitedTestCase): X = object() result = with_timeout(DELAY, event2.wait, timeout_value=X) assert result is X, 'Nobody sent anything to event2 yet it received %r' % (result, ) - - -if __name__ == '__main__': - unittest.main() diff --git a/tests/test__greenness.py b/tests/test__greenness.py index a594b4d..37a77d7 100644 --- a/tests/test__greenness.py +++ b/tests/test__greenness.py @@ -2,10 +2,8 @@ To do that spawn a green server and then access it using a green socket. If either operation blocked the whole script would block and timeout. """ -import unittest - +import eventlet from eventlet.green import BaseHTTPServer -from eventlet import spawn, kill from eventlet.support import six if six.PY2: @@ -34,27 +32,20 @@ def start_http_server(): # the send() for the response blocks (or at least appeared to be) httpd.request_count += 1 httpd.handle_request() - return spawn(serve), httpd, sa[1] - + return eventlet.spawn(serve), httpd, sa[1] -class TestGreenness(unittest.TestCase): - def setUp(self): - self.gthread, self.server, self.port = start_http_server() - # print('Spawned the server') +def test_urllib(): + gthread, server, port = start_http_server() - def tearDown(self): - self.server.server_close() - kill(self.gthread) - - def test_urllib(self): - self.assertEqual(self.server.request_count, 0) + try: + assert server.request_count == 0 try: - urlopen('http://127.0.0.1:%s' % self.port) + urlopen('http://127.0.0.1:{0}'.format(port)) assert False, 'should not get there' except HTTPError as ex: assert ex.code == 501, repr(ex) - self.assertEqual(self.server.request_count, 1) - -if __name__ == '__main__': - unittest.main() + assert server.request_count == 1 + finally: + server.server_close() + eventlet.kill(gthread) diff --git a/tests/test__refcount.py b/tests/test__refcount.py index d38cf86..6ccfed7 100644 --- a/tests/test__refcount.py +++ b/tests/test__refcount.py @@ -3,7 +3,6 @@ are not leaked by the hub. """ import gc from pprint import pformat -import unittest import weakref from eventlet.support import clear_sys_exc_info @@ -86,7 +85,3 @@ def test_clean_exit(): def test_timeout_exit(): run_and_check(False) run_and_check(False) - - -if __name__ == '__main__': - unittest.main() diff --git a/tests/test__socket_errors.py b/tests/test__socket_errors.py index 21fab40..c33b227 100644 --- a/tests/test__socket_errors.py +++ b/tests/test__socket_errors.py @@ -60,7 +60,3 @@ def test_create_connection_refused(): except socket.error as ex: errno = ex.errno assert errno in [111, 61, 10061], 'Expected socket.error ECONNREFUSED, got {0}'.format(errno) - - -if __name__ == '__main__': - unittest.main() diff --git a/tests/wsgi_test.py b/tests/wsgi_test.py index 6b3c251..de6e7c7 100644 --- a/tests/wsgi_test.py +++ b/tests/wsgi_test.py @@ -8,7 +8,6 @@ import socket import sys import tempfile import traceback -import unittest import eventlet from eventlet import debug @@ -1528,6 +1527,42 @@ class TestHttpd(_TestBase): assert result.status == 'HTTP/1.1 200 OK' assert result.body == b'Host: localhost\nx-ANY_k: one\nx-ANY_k: two' + def test_chunked_timeout(self): + assert len(open_fds()) == 0 + + def app(env, start_response): + start_response('200 OK', [('Content-type', 'text/plain')]) + line = b'a' * (1 << 20) + for _ in range(10): + yield line + eventlet.sleep(0.1) + + pool = eventlet.GreenPool() + self.spawn_server(site=app, socket_timeout=0.1, custom_pool=pool) + eventlet.sleep(0) + assert len(open_fds()) == 1 + sock = eventlet.connect(self.server_addr) + sock.sendall(b'GET / HTTP/1.1\r\nHost: localhost\r\n\r\n') + assert len(open_fds()) == 2, repr(open_fds()) + status, headers = read_headers(sock) + assert headers['transfer-encoding'] == 'chunked' + sock.recv(1) + eventlet.sleep(0.3) + pool.waitall() + eventlet.sleep(0) + assert len(open_fds()) == 1 + + +def open_fds(): + hub = eventlet.hubs.get_hub() + fds = ( + frozenset(hub.listeners[hub.READ]) + | frozenset(hub.listeners[hub.WRITE]) + | frozenset(hub.secondaries[hub.READ]) + | frozenset(hub.secondaries[hub.WRITE]) + ) + return fds + def read_headers(sock): fd = sock.makefile('rb') @@ -1787,7 +1822,3 @@ class TestChunkedInput(_TestBase): signal.signal(signal.SIGALRM, signal.SIG_DFL) assert not got_signal, "caught alarm signal. infinite loop detected." - - -if __name__ == '__main__': - unittest.main() |
