File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -354,7 +354,7 @@ cdef class HttpParser:
354
354
def is_upgrade (self ):
355
355
""" Do we get upgrade header in the request. Useful for
356
356
websockets """
357
- return self ._parser_upgrade
357
+ return self ._parser.upgrade
358
358
359
359
def is_headers_complete (self ):
360
360
""" return True if all headers have been parsed. """
Original file line number Diff line number Diff line change @@ -19,6 +19,22 @@ def test_repeated_continuation_header():
19
19
hdr = HttpStream (stream ).headers ()
20
20
assert hdr ['X-Test' ] == 'foo bar, baz qux'
21
21
22
+ def test_upgrade_header ():
23
+ stream = io .BytesIO (b'GET /test HTTP/1.1\r \n Connection: keep-alive, upgrade\r \n Upgrade: websocket\r \n Sec-WebSocket-Key: hojIvDoHedBucveephosh8==\r \n Sec-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 \n Connection: upgrade\r \n Upgrade: websocket\r \n Sec-WebSocket-Key: hojIvDoHedBucveephosh8==\r \n Sec-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 \n Connection: shenanigans\r \n \r \n ' )
34
+ hdr = HttpStream (stream )
35
+ hdr .headers ()
36
+ assert hdr .parser .is_upgrade () == 0
37
+
22
38
def test_continuation_header_py ():
23
39
stream = io .BytesIO (b'GET /test HTTP/1.1\r \n X-Test: foo\r \n bar\r \n \r \n ' )
24
40
hdr = HttpStream (stream , parser_class = PyHttpParser ).headers ()
You can’t perform that action at this time.
0 commit comments