8000 Fixed is_upgrade. Provided a couple of tests. · DavidKorczynski/http-parser@3dcd0c4 · GitHub 10000
[go: up one dir, main page]

Skip to content

Commit 3dcd0c4

Browse files
committed
Fixed is_upgrade. Provided a couple of tests.
1 parent 2306df2 commit 3dcd0c4

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

http_parser/parser.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ cdef class HttpParser:
354354
def is_upgrade(self):
355355
""" Do we get upgrade header in the request. Useful for
356356
websockets """
357-
return self._parser_upgrade
357+
return self._parser.upgrade
358358

359359
def is_headers_complete(self):
360360
""" return True if all headers have been parsed. """

testing/test_headers.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,22 @@ def test_repeated_continuation_header():
1919
hdr = HttpStream(stream).headers()
2020
assert hdr['X-Test'] == 'foo bar, baz qux'
2121

22+
def test_upgrade_header():
23+
stream = io.BytesIO(b'GET /test HTTP/1.1\r\nConnection: keep-alive, upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Key: hojIvDoHedBucveephosh8==\r\nSec-WebSocket-Version: 13\r\n\r\n')
24+
hdr = HttpStream(stream)
25+
hdr.headers()
26+
assert hdr.parser.is_upgrade() == 1
27+
28+
stream = io.BytesIO(b'GET /test HTTP/1.1\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Key: hojIvDoHedBucveephosh8==\r\nSec-WebSocket-Version: 13\r\n\r\n')
29+
hdr = HttpStream(stream)
30+
hdr.headers()
31+
assert hdr.parser.is_upgrade() == 1
32+
33+
stream = io.BytesIO(b'GET /test HTTP/1.1\r\nConnection: shenanigans\r\n\r\n')
34+
hdr = HttpStream(stream)
35+
hdr.headers()
36+
assert hdr.parser.is_upgrade() == 0
37+
2238
def test_continuation_header_py():
2339
stream = io.BytesIO(b'GET /test HTTP/1.1\r\nX-Test: foo\r\n bar\r\n\r\n')
2440
hdr = HttpStream(stream, parser_class=PyHttpParser).headers()

0 commit comments

Comments
 (0)
0