Tests: Node.js websockets tests tuned.

This commit is contained in:
Andrey Zelenkov
2019-08-22 18:28:23 +03:00
parent e291841b33
commit 72b56388b7
2 changed files with 16 additions and 5 deletions

View File

@@ -9,9 +9,15 @@ class TestNodeWebsockets(TestApplicationNode):
ws = TestApplicationWebsocket() ws = TestApplicationWebsocket()
@classmethod def setUp(self):
def setUpClass(cls): super().setUp()
raise unittest.SkipTest('Websockets is not available')
self.skip_alerts.extend(
[
r'last message send failed',
r'socket close\(\d+\) failed',
]
)
def close_connection(self, sock): def close_connection(self, sock):
self.assertEqual(self.recvall(sock, read_timeout=1), b'', 'empty sock') self.assertEqual(self.recvall(sock, read_timeout=1), b'', 'empty sock')
@@ -432,6 +438,7 @@ class TestNodeWebsockets(TestApplicationNode):
# validation for websocket frames. It should be implemented # validation for websocket frames. It should be implemented
# by application, if necessary. # by application, if necessary.
@unittest.skip('not yet')
def test_node_websockets_1_1_1__1_1_8(self): def test_node_websockets_1_1_1__1_1_8(self):
self.load('websockets/mirror') self.load('websockets/mirror')
@@ -458,6 +465,7 @@ class TestNodeWebsockets(TestApplicationNode):
self.close_connection(sock) self.close_connection(sock)
@unittest.skip('not yet')
def test_node_websockets_1_2_1__1_2_8(self): def test_node_websockets_1_2_1__1_2_8(self):
self.load('websockets/mirror') self.load('websockets/mirror')
@@ -799,6 +807,7 @@ class TestNodeWebsockets(TestApplicationNode):
self.check_close(sock, 1002) self.check_close(sock, 1002)
@unittest.skip('not yet')
def test_node_websockets_5_1__5_20(self): def test_node_websockets_5_1__5_20(self):
self.load('websockets/mirror') self.load('websockets/mirror')
@@ -1521,6 +1530,7 @@ class TestNodeWebsockets(TestApplicationNode):
self.ws.frame_write(sock, opcode, payload) # frame length is 101 self.ws.frame_write(sock, opcode, payload) # frame length is 101
self.check_close(sock, 1009) # 1009 - CLOSE_TOO_LARGE self.check_close(sock, 1009) # 1009 - CLOSE_TOO_LARGE
@unittest.skip('not yet')
def test_node_websockets_read_timeout(self): def test_node_websockets_read_timeout(self):
self.load('websockets/mirror') self.load('websockets/mirror')
@@ -1541,6 +1551,7 @@ class TestNodeWebsockets(TestApplicationNode):
self.check_close(sock, 1001) # 1001 - CLOSE_GOING_AWAY self.check_close(sock, 1001) # 1001 - CLOSE_GOING_AWAY
@unittest.skip('not yet')
def test_node_websockets_keepalive_interval(self): def test_node_websockets_keepalive_interval(self):
self.load('websockets/mirror') self.load('websockets/mirror')

View File

@@ -57,7 +57,7 @@ class TestApplicationWebsocket(TestApplicationProto):
def serialize_close(self, code = 1000, reason = ''): def serialize_close(self, code = 1000, reason = ''):
return struct.pack('!H', code) + reason.encode('utf-8') return struct.pack('!H', code) + reason.encode('utf-8')
def frame_read(self, sock, read_timeout=1): def frame_read(self, sock, read_timeout=5):
def recv_bytes(sock, bytes): def recv_bytes(sock, bytes):
data = b'' data = b''
while select.select([sock], [], [], read_timeout)[0]: while select.select([sock], [], [], read_timeout)[0]:
@@ -204,7 +204,7 @@ class TestApplicationWebsocket(TestApplicationProto):
op_code = self.OP_CONT op_code = self.OP_CONT
pos = end pos = end
def message_read(self, sock, read_timeout=1): def message_read(self, sock, read_timeout=5):
frame = self.frame_read(sock, read_timeout=read_timeout) frame = self.frame_read(sock, read_timeout=read_timeout)
while(not frame['fin']): while(not frame['fin']):