import email from paste.httpserver import WSGIHandler from six.moves import StringIO class MockServer(object): server_address = ('127.0.0.1', 80) class MockSocket(object): def makefile(self, mode, bufsize): return StringIO() def test_environ(): mock_socket = MockSocket() mock_client_address = '1.2.3.4' mock_server = MockServer() wsgi_handler = WSGIHandler(mock_socket, mock_client_address, mock_server) wsgi_handler.command = 'GET' wsgi_handler.path = '/path' wsgi_handler.request_version = 'HTTP/1.0' wsgi_handler.headers = email.message_from_string('Host: mywebsite') wsgi_handler.wsgi_setup() assert wsgi_handler.wsgi_environ['HTTP_HOST'] == 'mywebsite' def test_environ_with_multiple_values(): mock_socket = MockSocket() mock_client_address = '1.2.3.4' mock_server = MockServer() wsgi_handler = WSGIHandler(mock_socket, mock_client_address, mock_server) wsgi_handler.command = 'GET' wsgi_handler.path = '/path' wsgi_handler.request_version = 'HTTP/1.0' wsgi_handler.headers = email.message_from_string('Host: host1\nHost: host2') wsgi_handler.wsgi_setup() assert wsgi_handler.wsgi_environ['HTTP_HOST'] == 'host1,host2'