mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
207 lines
5.6 KiB
Python
207 lines
5.6 KiB
Python
# -*- coding: utf-8 -
|
|
#
|
|
# This file is part of gunicorn released under the MIT license.
|
|
# See the NOTICE for more information.
|
|
|
|
import t
|
|
|
|
@t.request("001.http")
|
|
def test_001(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
|
|
t.eq(p.method, "PUT")
|
|
t.eq(p.version, (1,0))
|
|
t.eq(p.path, "/stuff/here")
|
|
t.eq(p.query_string, "foo=bar")
|
|
t.eq(sorted(p.headers), [
|
|
('Content-Length', '14'),
|
|
('Content-Type', 'application/json'),
|
|
('Server', 'http://127.0.0.1:5984')
|
|
])
|
|
body, tr = p.filter_body(buf2)
|
|
t.eq(body, '{"nom": "nom"}')
|
|
t.eq(p.body_eof(), True)
|
|
|
|
@t.request("002.http")
|
|
def test_002(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
|
|
t.eq(p.method, "GET")
|
|
t.eq(p.version, (1, 1))
|
|
t.eq(p.path, "/test")
|
|
t.eq(p.query_string, "")
|
|
t.eq(sorted(p.headers), [
|
|
("Accept", "*/*"),
|
|
("Host", "0.0.0.0=5000"),
|
|
("User-Agent", "curl/7.18.0 (i486-pc-linux-gnu) libcurl/7.18.0 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.1")
|
|
])
|
|
body, tr = p.filter_body(buf2)
|
|
t.eq(body, "")
|
|
|
|
@t.request("003.http")
|
|
def test_003(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
t.eq(p.method, "GET")
|
|
t.eq(p.version, (1, 1))
|
|
t.eq(p.path, "/favicon.ico")
|
|
t.eq(p.query_string, "")
|
|
t.eq(sorted(p.headers), [
|
|
("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"),
|
|
("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7"),
|
|
("Accept-Encoding", "gzip,deflate"),
|
|
("Accept-Language", "en-us,en;q=0.5"),
|
|
("Connection", "keep-alive"),
|
|
("Host", "0.0.0.0=5000"),
|
|
("Keep-Alive", "300"),
|
|
("User-Agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko/2008061015 Firefox/3.0"),
|
|
])
|
|
body, tr = p.filter_body(buf2)
|
|
t.eq(body, "")
|
|
|
|
@t.request("004.http")
|
|
def test_004(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
t.eq(p.method, "GET")
|
|
t.eq(p.version, (1, 1))
|
|
t.eq(p.path, "/dumbfuck")
|
|
t.eq(p.query_string, "")
|
|
t.eq(p.headers, [("Aaaaaaaaaaaaa", "++++++++++")])
|
|
body, tr = p.filter_body(buf2)
|
|
t.eq(body, "")
|
|
|
|
|
|
@t.request("005.http")
|
|
def test_005(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
t.eq(p.method, "GET")
|
|
t.eq(p.version, (1, 1))
|
|
t.eq(p.path, "/forums/1/topics/2375")
|
|
t.eq(p.query_string, "page=1")
|
|
|
|
|
|
t.eq(p.fragment, "posts-17408")
|
|
body, tr = p.filter_body(buf2)
|
|
t.eq(body, "")
|
|
|
|
@t.request("006.http")
|
|
def test_006(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
t.eq(p.method, "GET")
|
|
t.eq(p.version, (1, 1))
|
|
t.eq(p.path, "/get_no_headers_no_body/world")
|
|
t.eq(p.query_string, "")
|
|
t.eq(p.fragment, "")
|
|
body, tr = p.filter_body(buf2)
|
|
t.eq(body, "")
|
|
|
|
@t.request("007.http")
|
|
def test_007(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
t.eq(p.method, "GET")
|
|
t.eq(p.version, (1, 1))
|
|
t.eq(p.path, "/get_one_header_no_body")
|
|
t.eq(p.query_string, "")
|
|
t.eq(p.fragment, "")
|
|
t.eq(p.headers, [('Accept', '*/*')])
|
|
body, tr = p.filter_body(buf2)
|
|
t.eq(body, "")
|
|
|
|
@t.request("008.http")
|
|
def test_008(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
t.eq(p.method, "GET")
|
|
t.eq(p.version, (1, 0))
|
|
t.eq(p.path, "/get_funky_content_length_body_hello")
|
|
t.eq(p.query_string, "")
|
|
t.eq(p.fragment, "")
|
|
t.eq(p.headers, [('Content-Length', '5')])
|
|
body, tr = p.filter_body(buf2)
|
|
t.eq(body, "HELLO")
|
|
|
|
@t.request("009.http")
|
|
def test_009(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
t.eq(p.method, "POST")
|
|
t.eq(p.version, (1, 1))
|
|
t.eq(p.path, "/post_identity_body_world")
|
|
t.eq(p.query_string, "q=search")
|
|
t.eq(p.fragment, "hey")
|
|
t.eq(sorted(p.headers), [
|
|
('Accept', '*/*'),
|
|
('Content-Length', '5'),
|
|
('Transfer-Encoding', 'identity')
|
|
])
|
|
body, tr = p.filter_body(buf2)
|
|
t.eq(body, "World")
|
|
|
|
@t.request("010.http")
|
|
def test_010(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
t.eq(p.method, "POST")
|
|
t.eq(p.version, (1, 1))
|
|
t.eq(p.path, "/post_chunked_all_your_base")
|
|
t.eq(p.headers, [('Transfer-Encoding', 'chunked')])
|
|
t.eq(p.is_chunked, True)
|
|
t.eq(p._chunk_eof, False)
|
|
t.ne(p.body_eof(), True)
|
|
body = ""
|
|
while not p.body_eof():
|
|
chunk, buf2 = p.filter_body(buf2)
|
|
print chunk
|
|
if chunk:
|
|
body += chunk
|
|
t.eq(body, "all your base are belong to us")
|
|
|
|
@t.request("011.http")
|
|
def test_011(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
t.eq(p.method, "POST")
|
|
t.eq(p.version, (1, 1))
|
|
t.eq(p.path, "/two_chunks_mult_zero_end")
|
|
t.eq(p.headers, [('Transfer-Encoding', 'chunked')])
|
|
t.eq(p.is_chunked, True)
|
|
t.eq(p._chunk_eof, False)
|
|
t.ne(p.body_eof(), True)
|
|
body = ""
|
|
while not p.body_eof():
|
|
chunk, buf2 = p.filter_body(buf2)
|
|
if chunk:
|
|
body += chunk
|
|
t.eq(body, "hello world")
|
|
|
|
@t.request("017.http")
|
|
def test_012(buf, p):
|
|
headers = []
|
|
buf2 = p.filter_headers(headers, buf)
|
|
t.ne(buf2, False)
|
|
t.eq(p.method, "GET")
|
|
t.eq(p.version, (1, 0))
|
|
t.eq(p.path, "/stuff/here")
|
|
t.eq(p.query_string, "foo=bar")
|
|
t.eq(p.is_chunked, False)
|
|
t.eq(p._chunk_eof, False)
|
|
t.eq(p.body_eof(), True)
|
|
t.eq(p.headers, [("If-Match", "bazinga!, large-sound")])
|