18
18
combine_repeated_headers , split_repeated_headers , h2_safe_headers
19
19
)
20
20
from hyper .common .headers import HTTPHeaderMap
21
- from hyper .compat import zlib_compressobj
21
+ from hyper .compat import zlib_compressobj , is_py2
22
22
from hyper .contrib import HTTP20Adapter
23
23
import hyper .http20 .errors as errors
24
24
import errno
@@ -87,11 +87,11 @@ def test_putrequest_autosets_headers(self):
87
87
c .putrequest ('GET' , '/' )
88
88
s = c .recent_stream
89
89
90
- assert s .headers == [
91
- (':method' , 'GET' ),
92
- (':scheme' , 'https' ),
93
- (':authority' , 'www.google.com' ),
94
- (':path' , '/' ),
90
+ assert list ( s .headers . items ()) == [
91
+ (b ':method' , b 'GET' ),
92
+ (b ':scheme' , b 'https' ),
93
+ (b ':authority' , b 'www.google.com' ),
94
+ (b ':path' , b '/' ),
95
95
]
96
96
97
97
def test_putheader_puts_headers (self ):
@@ -101,12 +101,12 @@ def test_putheader_puts_headers(self):
101
101
c .putheader ('name' , 'value' )
102
102
s = c .recent_stream
103
103
104
- assert s .headers == [
105
- (':method' , 'GET' ),
106
- (':scheme' , 'https' ),
107
- (':authority' , 'www.google.com' ),
108
- (':path' , '/' ),
109
- ('name' , 'value' ),
104
+ assert list ( s .headers . items ()) == [
105
+ (b ':method' , b 'GET' ),
106
+ (b ':scheme' , b 'https' ),
107
+ (b ':authority' , b 'www.google.com' ),
108
+ (b ':path' , b '/' ),
109
+ (b 'name' , b 'value' ),
110
110
]
111
111
112
112
def test_putheader_replaces_headers (self ):
@@ -118,12 +118,12 @@ def test_putheader_replaces_headers(self):
118
118
c .putheader ('name' , 'value2' , replace = True )
119
119
s = c .recent_stream
120
120
121
- assert s .headers == [
122
- (':method' , 'GET' ),
123
- (':scheme' , 'https' ),
124
- (':authority' , 'www.example.org' ),
125
- (':path' , '/' ),
126
- ('name' , 'value2' ),
121
+ assert list ( s .headers . items ()) == [
122
+ (b ':method' , b 'GET' ),
123
+ (b ':scheme' , b 'https' ),
124
+ (b ':authority' , b 'www.example.org' ),
125
+ (b ':path' , b '/' ),
126
+ (b 'name' , b 'value2' ),
127
127
]
128
128
129
129
def test_endheaders_sends_data (self ):
@@ -519,11 +519,11 @@ def test_that_using_proxy_keeps_http_headers_intact(self):
519
519
c .request ('GET' , '/' )
520
520
s = c .recent_stream
521
521
522
- assert s .headers == [
523
- (':method' , 'GET' ),
524
- (':scheme' , 'http' ),
525
- (':authority' , 'www.google.com' ),
526
- (':path' , '/' ),
522
+ assert list ( s .headers . items ()) == [
523
+ (b ':method' , b 'GET' ),
524
+ (b ':scheme' , b 'http' ),
525
+ (b ':authority' , b 'www.google.com' ),
526
+ (b ':path' , b '/' ),
527
527
]
528
528
529
529
class TestServerPush (object ):
@@ -694,28 +694,28 @@ def test_streams_have_ids(self):
694
694
695
695
def test_streams_initially_have_no_headers (self ):
696
696
s = Stream (1 , None , None , None , None , None , None )
697
- assert s .headers == []
697
+ assert list ( s .headers . items ()) == []
698
698
699
699
def test_streams_can_have_headers (self ):
700
700
s = Stream (1 , None , None , None , None , None , None )
701
701
s .add_header ("name" , "value" )
702
- assert s .headers == [("name" , "value" )]
702
+ assert list ( s .headers . items ()) == [(b "name" , b "value" )]
703
703
704
704
def test_streams_can_replace_headers (self ):
705
705
s = Stream (1 , None , None , None , None , None , None )
706
706
s .add_header ("name" , "value" )
707
707
s .add_header ("name" , "other_value" , replace = True )
708
708
709
- assert s .headers == [("name" , "other_value" )]
709
+ assert list ( s .headers . items ()) == [(b "name" , b "other_value" )]
710
710
711
711
def test_streams_can_replace_none_headers (self ):
712
712
s = Stream (1 , None , None , None , None , None , None )
713
713
s .add_header ("name" , "value" )
714
714
s .add_header ("other_name" , "other_value" , replace = True )
715
715
716
- assert s .headers == [
717
- ("name" , "value" ),
718
- ("other_name" , "other_value" )
716
+ assert list ( s .headers . items ()) == [
717
+ (b "name" , b "value" ),
718
+ (b "other_name" , b "other_value" )
719
719
]
720
720
721
721
def test_stream_opening_sends_headers (self ):
@@ -1485,7 +1485,17 @@ def test_connection_error_when_send_out_of_range_frame(self):
1485
1485
class NullEncoder (object ):
1486
1486
@staticmethod
1487
1487
def encode (headers ):
1488
- return '\n ' .join ("%s%s" % (name , val ) for name , val in headers )
1488
+
1489
+ def to_str (v ):
1490
+ if is_py2 :
1491
+ return str (v )
1492
+ else :
1493
+ if not isinstance (v , str ):
1494
+ v = str (v , 'utf-8' )
1495
+ return v
1496
+
1497
+ return '\n ' .join ("%s%s" % (to_str (name ), to_str (val ))
1498
+ for name , val in headers )
1489
1499
1490
1500
class FixedDecoder (object ):
1491
1501
def __init__ (self , result ):
0 commit comments