summaryrefslogtreecommitdiff
path: root/tests/greenio_test.py
diff options
context:
space:
mode:
authorJakub Stasiak <jakub@stasiak.at>2014-10-16 00:01:29 +0100
committerJakub Stasiak <jakub@stasiak.at>2014-10-16 23:02:01 +0100
commit325b5afd1f073bbd652332cc05f54125b5c8992c (patch)
tree8cd603cf509564f7befbe530606e956fac5e451a /tests/greenio_test.py
parent0b8f44f244c5b89ebeca3ec57af729cc2a766398 (diff)
downloadeventlet-325b5afd1f073bbd652332cc05f54125b5c8992c.tar.gz
Fix "maximum recursion depth exceeded in GreenSocket.__del__"
Closes #137 Closes #148
Diffstat (limited to 'tests/greenio_test.py')
-rw-r--r--tests/greenio_test.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/tests/greenio_test.py b/tests/greenio_test.py
index ba3a826..8993e85 100644
--- a/tests/greenio_test.py
+++ b/tests/greenio_test.py
@@ -9,10 +9,12 @@ import socket as _orig_sock
import sys
import tempfile
+from nose.tools import eq_
+
from eventlet import event, greenio, debug
from eventlet.hubs import get_hub
from eventlet.green import select, socket, time, ssl
-from eventlet.support import get_errno, six
+from eventlet.support import capture_stderr, get_errno, six
from tests import (
LimitedTestCase, main,
skip_with_pyevent, skipped, skip_if, skip_on_windows,
@@ -895,5 +897,21 @@ def test_set_nonblocking():
assert new_flags == (orig_flags | os.O_NONBLOCK)
+def test_socket_del_fails_gracefully_when_not_fully_initialized():
+ # Regression introduced in da87716714689894f23d0db7b003f26d97031e83, reported in:
+ # * GH #137 https://github.com/eventlet/eventlet/issues/137
+ # * https://bugs.launchpad.net/oslo.messaging/+bug/1369999
+
+ class SocketSubclass(socket.socket):
+
+ def __init__(self):
+ pass
+
+ with capture_stderr() as err:
+ SocketSubclass()
+
+ assert err.getvalue() == ''
+
+
if __name__ == '__main__':
main()