summaryrefslogtreecommitdiffhomepage
path: root/test/unit/applications/websockets.py
diff options
context:
space:
mode:
authorAndrei Belov <defan@nginx.com>2020-10-08 19:19:31 +0300
committerAndrei Belov <defan@nginx.com>2020-10-08 19:19:31 +0300
commitd586ac9fdc4a86c142b06a75dde4cdacad5b52f6 (patch)
tree9817282396f9d2cf5333050e4b5bf807d3617e40 /test/unit/applications/websockets.py
parent9be35d9b7418c041e5177f273c20f0fd2d3f00ad (diff)
parentad516735a65fe109773b60e26214a071411f1734 (diff)
downloadunit-d586ac9fdc4a86c142b06a75dde4cdacad5b52f6.tar.gz
unit-d586ac9fdc4a86c142b06a75dde4cdacad5b52f6.tar.bz2
Merged with the default branch.1.20.0-1
Diffstat (limited to 'test/unit/applications/websockets.py')
-rw-r--r--test/unit/applications/websockets.py22
1 files changed, 8 insertions, 14 deletions
diff --git a/test/unit/applications/websockets.py b/test/unit/applications/websockets.py
index e0dd2c0d..cc720a98 100644
--- a/test/unit/applications/websockets.py
+++ b/test/unit/applications/websockets.py
@@ -2,10 +2,10 @@ import base64
import hashlib
import itertools
import random
-import re
import select
import struct
+import pytest
from unit.applications.proto import TestApplicationProto
GUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
@@ -21,9 +21,6 @@ class TestApplicationWebsocket(TestApplicationProto):
OP_PONG = 0x0A
CLOSE_CODES = [1000, 1001, 1002, 1003, 1007, 1008, 1009, 1010, 1011]
- def __init__(self, preinit=False):
- self.preinit = preinit
-
def key(self):
raw_key = bytes(random.getrandbits(8) for _ in range(16))
return base64.b64encode(raw_key).decode()
@@ -42,7 +39,7 @@ class TestApplicationWebsocket(TestApplicationProto):
'Upgrade': 'websocket',
'Connection': 'Upgrade',
'Sec-WebSocket-Key': key,
- 'Sec-WebSocket-Protocol': 'chat',
+ 'Sec-WebSocket-Protocol': 'chat, phone, video',
'Sec-WebSocket-Version': 13,
}
@@ -56,14 +53,11 @@ class TestApplicationWebsocket(TestApplicationProto):
while True:
rlist = select.select([sock], [], [], 60)[0]
if not rlist:
- self.fail('Can\'t read response from server.')
+ pytest.fail('Can\'t read response from server.')
resp += sock.recv(4096).decode()
- if (
- re.search('101 Switching Protocols', resp)
- and resp[-4:] == '\r\n\r\n'
- ):
+ if (resp.startswith('HTTP/') and '\r\n\r\n' in resp):
resp = self._resp_to_dict(resp)
break
@@ -84,7 +78,7 @@ class TestApplicationWebsocket(TestApplicationProto):
# For all current cases if the "read_timeout" was changed
# than test do not expect to get a response from server.
if read_timeout == 60:
- self.fail('Can\'t read response from server.')
+ pytest.fail('Can\'t read response from server.')
break
data += sock.recv(bytes - len(data))
@@ -130,19 +124,19 @@ class TestApplicationWebsocket(TestApplicationProto):
code, = struct.unpack('!H', data[:2])
reason = data[2:].decode('utf-8')
if not (code in self.CLOSE_CODES or 3000 <= code < 5000):
- self.fail('Invalid status code')
+ pytest.fail('Invalid status code')
frame['code'] = code
frame['reason'] = reason
elif length == 0:
frame['code'] = 1005
frame['reason'] = ''
else:
- self.fail('Close frame too short')
+ pytest.fail('Close frame too short')
frame['data'] = data
if frame['mask']:
- self.fail('Received frame with mask')
+ pytest.fail('Received frame with mask')
return frame