- detect socket connection state(#109)
This commit is contained in:
@@ -206,7 +206,8 @@ ChangeLog
|
||||
|
||||
- v0.19.0
|
||||
|
||||
-suppress close event message(#107)
|
||||
- suppress close event message(#107)
|
||||
- detect socket connection state(#109)
|
||||
|
||||
- v0.18.0
|
||||
|
||||
|
@@ -29,7 +29,6 @@ from websocket._core import _parse_url, _create_sec_websocket_key
|
||||
|
||||
# Skip test to access the internet.
|
||||
TEST_WITH_INTERNET = False
|
||||
# TEST_WITH_INTERNET = True
|
||||
|
||||
# Skip Secure WebSocket test.
|
||||
TEST_SECURE_WS = False
|
||||
@@ -62,6 +61,9 @@ class SockMock(object):
|
||||
self.sent.append(data)
|
||||
return len(data)
|
||||
|
||||
def close(self):
|
||||
pass
|
||||
|
||||
|
||||
class HeaderSockMock(SockMock):
|
||||
|
||||
@@ -287,6 +289,20 @@ class WebSocketTest(unittest.TestCase):
|
||||
with self.assertRaises(ws.WebSocketConnectionClosedException):
|
||||
sock.recv()
|
||||
|
||||
def testClose(self):
|
||||
sock = ws.WebSocket()
|
||||
sock.sock = SockMock()
|
||||
sock.connected = True
|
||||
sock.close()
|
||||
self.assertEqual(sock.connected, False)
|
||||
|
||||
sock = ws.WebSocket()
|
||||
s = sock.sock = SockMock()
|
||||
sock.connected = True
|
||||
s.add_packet(six.b('\x88\x80\x17\x98p\x84'))
|
||||
sock.recv()
|
||||
self.assertEqual(sock.connected, False)
|
||||
|
||||
def testRecvContFragmentation(self):
|
||||
sock = ws.WebSocket()
|
||||
s = sock.sock = SockMock()
|
||||
|
@@ -787,6 +787,7 @@ class WebSocket(object):
|
||||
"""
|
||||
if status < 0 or status >= ABNF.LENGTH_16:
|
||||
raise ValueError("code is invalid range")
|
||||
self.connected = False
|
||||
self.send(struct.pack('!H', status) + reason, ABNF.OPCODE_CLOSE)
|
||||
|
||||
def close(self, status=STATUS_NORMAL, reason=six.b("")):
|
||||
|
Reference in New Issue
Block a user