aboutsummaryrefslogtreecommitdiff
path: root/test/test_websockets.py
diff options
context:
space:
mode:
authorSimon Sawicki <contact@grub4k.xyz>2025-03-03 00:10:01 +0100
committerGitHub <noreply@github.com>2025-03-03 00:10:01 +0100
commit7d18fed8f1983fe6de4ddc810dfb2761ba5744ac (patch)
treeb090448b1098b43359a0ce87c531bb54178482ca /test/test_websockets.py
parent79ec2fdff75c8c1bb89b550266849ad4dec48dd3 (diff)
[networking] Add `keep_header_casing` extension (#11652)
Authored by: coletdjnz, Grub4K Co-authored-by: coletdjnz <coletdjnz@protonmail.com>
Diffstat (limited to 'test/test_websockets.py')
-rw-r--r--test/test_websockets.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/test/test_websockets.py b/test/test_websockets.py
index 06112cc0b..dead5fe5c 100644
--- a/test/test_websockets.py
+++ b/test/test_websockets.py
@@ -44,7 +44,7 @@ def websocket_handler(websocket):
return websocket.send('2')
elif isinstance(message, str):
if message == 'headers':
- return websocket.send(json.dumps(dict(websocket.request.headers)))
+ return websocket.send(json.dumps(dict(websocket.request.headers.raw_items())))
elif message == 'path':
return websocket.send(websocket.request.path)
elif message == 'source_address':
@@ -266,18 +266,18 @@ class TestWebsSocketRequestHandlerConformance:
with handler(cookiejar=cookiejar) as rh:
ws = ws_validate_and_send(rh, Request(self.ws_base_url))
ws.send('headers')
- assert json.loads(ws.recv())['cookie'] == 'test=ytdlp'
+ assert HTTPHeaderDict(json.loads(ws.recv()))['cookie'] == 'test=ytdlp'
ws.close()
with handler() as rh:
ws = ws_validate_and_send(rh, Request(self.ws_base_url))
ws.send('headers')
- assert 'cookie' not in json.loads(ws.recv())
+ assert 'cookie' not in HTTPHeaderDict(json.loads(ws.recv()))
ws.close()
ws = ws_validate_and_send(rh, Request(self.ws_base_url, extensions={'cookiejar': cookiejar}))
ws.send('headers')
- assert json.loads(ws.recv())['cookie'] == 'test=ytdlp'
+ assert HTTPHeaderDict(json.loads(ws.recv()))['cookie'] == 'test=ytdlp'
ws.close()
@pytest.mark.skip_handler('Websockets', 'Set-Cookie not supported by websockets')
@@ -287,7 +287,7 @@ class TestWebsSocketRequestHandlerConformance:
ws_validate_and_send(rh, Request(f'{self.ws_base_url}/get_cookie', extensions={'cookiejar': YoutubeDLCookieJar()}))
ws = ws_validate_and_send(rh, Request(self.ws_base_url, extensions={'cookiejar': YoutubeDLCookieJar()}))
ws.send('headers')
- assert 'cookie' not in json.loads(ws.recv())
+ assert 'cookie' not in HTTPHeaderDict(json.loads(ws.recv()))
ws.close()
@pytest.mark.skip_handler('Websockets', 'Set-Cookie not supported by websockets')
@@ -298,12 +298,12 @@ class TestWebsSocketRequestHandlerConformance:
ws_validate_and_send(rh, Request(f'{self.ws_base_url}/get_cookie'))
ws = ws_validate_and_send(rh, Request(self.ws_base_url))
ws.send('headers')
- assert json.loads(ws.recv())['cookie'] == 'test=ytdlp'
+ assert HTTPHeaderDict(json.loads(ws.recv()))['cookie'] == 'test=ytdlp'
ws.close()
cookiejar.clear_session_cookies()
ws = ws_validate_and_send(rh, Request(self.ws_base_url))
ws.send('headers')
- assert 'cookie' not in json.loads(ws.recv())
+ assert 'cookie' not in HTTPHeaderDict(json.loads(ws.recv()))
ws.close()
def test_source_address(self, handler):
@@ -341,6 +341,14 @@ class TestWebsSocketRequestHandlerConformance:
assert headers['test3'] == 'test3'
ws.close()
+ def test_keep_header_casing(self, handler):
+ with handler(headers=HTTPHeaderDict({'x-TeSt1': 'test'})) as rh:
+ ws = ws_validate_and_send(rh, Request(self.ws_base_url, headers={'x-TeSt2': 'test'}, extensions={'keep_header_casing': True}))
+ ws.send('headers')
+ headers = json.loads(ws.recv())
+ assert 'x-TeSt1' in headers
+ assert 'x-TeSt2' in headers
+
@pytest.mark.parametrize('client_cert', (
{'client_certificate': os.path.join(MTLS_CERT_DIR, 'clientwithkey.crt')},
{