def _test_chunked(body, expect): env = dict(copy.deepcopy(env1)) env['wsgi.input'] = BytesIO(to_bytes(body)) env['HTTP_TRANSFER_ENCODING'] = 'chunked' env['QUERY_STRING'] = '' req = Request(env) assert req.chunked == True if inspect.isclass(expect) and issubclass(expect, Exception): with pytest.raises(BadRequest): req.get_data() else: assert req.data == to_bytes(expect)
def test_basic_request(): env = dict(copy.deepcopy(env1)) req = Request(env) assert 'flagon.request' in env assert req.args == MultiDict({'a':'1', 'b':'2'}.items()) assert req.values == MultiDict({'a':'1', 'b':'2'}.items()) assert req.path == '/bar' assert req.full_path == '/foo/bar' assert req.script_root == '/foo' assert req.url == 'http://test.flagon.org/foo/bar?a=1&b=2' assert req.base_url == 'http://test.flagon.org/foo/bar' assert req.root_url == 'http://test.flagon.org/foo/' assert req.host_url == 'http://test.flagon.org/' assert req.host == 'test.flagon.org' assert req.get_data() == b'' assert req.get_data(as_text=True) == '' assert req.blueprint == None assert req.mimetype == 'text/plain' assert req.mimetype_params == {'charset': 'utf-8'} assert req.get_json() == None assert req.get_json() == None assert req.content_length == 0 assert req.authorization == None assert req.cookies == FormsDict() assert list(req.range) == [] assert req.access_route == [] assert req.is_xhr == False assert req.is_secure == False assert req.if_modified_since == None assert req.if_unmodified_since == None assert req.access_route == [] assert req.remote_addr == None assert req.chunked == False assert req.method == "POST" assert req.url_charset == 'utf-8' assert "Content-Length" in req.headers assert "Request" in repr(req)