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