You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
5 years ago
|
import gevent.testing as greentest
|
||
|
from gevent import socket
|
||
|
import errno
|
||
|
import sys
|
||
|
|
||
|
|
||
|
class TestClosedSocket(greentest.TestCase):
|
||
|
|
||
|
switch_expected = False
|
||
|
|
||
|
def test(self):
|
||
|
sock = socket.socket()
|
||
|
sock.close()
|
||
|
try:
|
||
|
sock.send(b'a', timeout=1)
|
||
|
self.fail("Should raise socket error")
|
||
|
except (socket.error, OSError) as ex:
|
||
|
if ex.args[0] != errno.EBADF:
|
||
|
if sys.platform.startswith('win'):
|
||
|
# Windows/Py3 raises "OSError: [WinError 10038] "
|
||
|
# which is not standard and not what it does
|
||
|
# on Py2.
|
||
|
pass
|
||
|
else:
|
||
|
raise
|
||
|
|
||
|
|
||
|
class TestRef(greentest.TestCase):
|
||
|
|
||
|
switch_expected = False
|
||
|
|
||
|
def test(self):
|
||
|
# pylint:disable=no-member
|
||
|
sock = socket.socket()
|
||
|
self.assertTrue(sock.ref)
|
||
|
sock.ref = False
|
||
|
self.assertFalse(sock.ref)
|
||
|
self.assertFalse(sock._read_event.ref)
|
||
|
self.assertFalse(sock._write_event.ref)
|
||
|
sock.close()
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
greentest.main()
|