def create_request_from_environ( environ, session_class=None, session_options=None): """Create a new Request object. Create a new Request object based on a set of environ variables. To create a mutable version of the request you should copy() the Request object. If a POST variable named HTTP_REQUEST_METHOD is found, the Http Request method will be set to that method. """ headers, server, cookies = split_headers_server_vars(environ) get, post, files = get_form_vars(environ) if post.get('HTTP_REQUEST_METHOD', '').upper() in REQUEST_METHODS: method = post.get('HTTP_REQUEST_METHOD') else: method = server['REQUEST_METHOD'] request = Request( method, ImmutableMultiDict(get), ImmutableMultiDict(post), ImmutableMultiDict(files), ImmutableMultiDict(headers), ImmutableMultiDict(server), cookies) if session_class: request.define_session(session_class, session_options or {}) return request
def test_deep_copy(self): d = ImmutableMultiDict({'test': 'blah', 'something': '2'}) d2 = deepcopy(d) assert len(d) == len(d2)
def test_copy(self): d = ImmutableMultiDict({'test': 'blah', 'something': '2'}) d2 = copy(d) d3 = d.copy() assert len(d) == len(d2) assert len(d) == len(d3)
def test_del_value(self): with raises(TypeError): d = ImmutableMultiDict() d['something'] = 'test' del d['something']
def test_create(self): d = ImmutableMultiDict({'test': 'blah', 'something': '2'}) assert len(d) == 2
def test_copy(self): d = ImmutableMultiDict({'test': 'blah', 'something': '2'}) d2 = copy(d) d3 = d.copy() assert d == d2 assert d == d3
def test_del_value(self): d = ImmutableMultiDict() d['something'] = 'test' print('here') del d['something']
def test_set_value(self): d = ImmutableMultiDict() d['something'] = 'test'
def test_create(self): d = ImmutableMultiDict({'test': 'blah', 'something': '2'}) assert d.__len__() == 2