@@ -22,9 +22,9 @@ def setUp(self):
2222 self .writer = unittest .mock .Mock ()
2323 self .writer .drain .return_value = ()
2424 self .transport = unittest .mock .Mock ()
25- self .transport .get_extra_info .return_value = '127.0.0.1'
25+ self .transport .get_extra_info .return_value = ( '1.2.3.4' , 8080 )
2626
27- self .headers = multidict .MultiDict ()
27+ self .headers = multidict .MultiDict ({ "HOST" : "python.org" } )
2828 self .message = protocol .RawRequestMessage (
2929 'GET' , '/path' , (1 , 0 ), self .headers , True , 'deflate' )
3030 self .payload = aiohttp .FlowControlDataQueue (self .reader )
@@ -63,8 +63,7 @@ def test_environ(self):
6363
6464 def test_environ_headers (self ):
6565 self .headers .extend (
66- (('HOST' , 'python.org' ),
67- ('SCRIPT_NAME' , 'script' ),
66+ (('SCRIPT_NAME' , 'script' ),
6867 ('CONTENT-TYPE' , 'text/plain' ),
6968 ('CONTENT-LENGTH' , '209' ),
7069 ('X_TEST' , '123' ),
@@ -75,10 +74,9 @@ def test_environ_headers(self):
7574 self .assertEqual (environ ['HTTP_X_TEST' ], '123,456' )
7675 self .assertEqual (environ ['SCRIPT_NAME' ], 'script' )
7776 self .assertEqual (environ ['SERVER_NAME' ], 'python.org' )
78- self .assertEqual (environ ['SERVER_PORT' ], '443 ' )
77+ self .assertEqual (environ ['SERVER_PORT' ], '80 ' )
7978
8079 def test_environ_host_header (self ):
81- self .headers .add ('HOST' , 'python.org' )
8280 environ = self ._make_one ()
8381
8482 self .assertEqual (environ ['HTTP_HOST' ], 'python.org' )
@@ -87,41 +85,16 @@ def test_environ_host_header(self):
8785 self .assertEqual (environ ['SERVER_PROTOCOL' ], 'HTTP/1.0' )
8886
8987 def test_environ_host_port_header (self ):
88+ headers = multidict .MultiDict ({'HOST' : 'python.org:443' })
9089 self .message = protocol .RawRequestMessage (
91- 'GET' , '/path' , (1 , 1 ), self .headers , True , 'deflate' )
92- self .headers .add ('HOST' , 'python.org:443' )
90+ 'GET' , '/path' , (1 , 1 ), headers , True , 'deflate' )
9391 environ = self ._make_one ()
9492
9593 self .assertEqual (environ ['HTTP_HOST' ], 'python.org:443' )
9694 self .assertEqual (environ ['SERVER_NAME' ], 'python.org' )
9795 self .assertEqual (environ ['SERVER_PORT' ], '443' )
9896 self .assertEqual (environ ['SERVER_PROTOCOL' ], 'HTTP/1.1' )
9997
100- def test_environ_forward (self ):
101- self .transport .get_extra_info .return_value = 'localhost,127.0.0.1'
102- environ = self ._make_one ()
103-
104- self .assertEqual (environ ['REMOTE_ADDR' ], '127.0.0.1' )
105- self .assertEqual (environ ['REMOTE_PORT' ], '80' )
106-
107- self .transport .get_extra_info .return_value = 'localhost,127.0.0.1:443'
108- environ = self ._make_one ()
109-
110- self .assertEqual (environ ['REMOTE_ADDR' ], '127.0.0.1' )
111- self .assertEqual (environ ['REMOTE_PORT' ], '443' )
112-
113- self .transport .get_extra_info .return_value = ('127.0.0.1' , 443 )
114- environ = self ._make_one ()
115-
116- self .assertEqual (environ ['REMOTE_ADDR' ], '127.0.0.1' )
117- self .assertEqual (environ ['REMOTE_PORT' ], '443' )
118-
119- self .transport .get_extra_info .return_value = '[::1]'
120- environ = self ._make_one ()
121-
122- self .assertEqual (environ ['REMOTE_ADDR' ], '::1' )
123- self .assertEqual (environ ['REMOTE_PORT' ], '80' )
124-
12598 def test_wsgi_response (self ):
12699 srv = self ._make_srv ()
127100 resp = srv .create_wsgi_response (self .message )
@@ -280,3 +253,20 @@ def test_dont_unquote_environ_path_info(self):
280253 'GET' , path , (1 , 0 ), self .headers , True , 'deflate' )
281254 environ = self ._make_one ()
282255 self .assertEqual (environ ['PATH_INFO' ], path )
256+
257+ def test_not_add_authorization (self ):
258+ self .headers .extend ({"AUTHORIZATION" : "spam" ,
259+ "X-CUSTOM-HEADER" : "eggs" })
260+ self .message = protocol .RawRequestMessage (
261+ 'GET' , '/' , (1 , 1 ), self .headers , True , 'deflate' )
262+ environ = self ._make_one ()
263+ self .assertEqual ('eggs' , environ ['HTTP_X_CUSTOM_HEADER' ])
264+ self .assertFalse ('AUTHORIZATION' in environ )
265+
266+ def test_http_1_0_no_host (self ):
267+ headers = multidict .MultiDict ({})
268+ self .message = protocol .RawRequestMessage (
269+ 'GET' , '/' , (1 , 0 ), headers , True , 'deflate' )
270+ environ = self ._make_one ()
271+ self .assertEqual ('1.2.3.4' , environ ["SERVER_NAME" ])
272+ self .assertEqual ('8080' , environ ["SERVER_PORT" ])
0 commit comments