本文整理汇总了Python中geventhttpclient.response.HTTPResponse类的典型用法代码示例。如果您正苦于以下问题:Python HTTPResponse类的具体用法?Python HTTPResponse怎么用?Python HTTPResponse使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HTTPResponse类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_read_multiple_header
def test_read_multiple_header():
parser = HTTPResponse()
parser.feed(MULTI_COOKIE_RESPONSE)
headers = parser._headers_index
assert len(headers['set-cookie']) == MULTI_COOKIE_RESPONSE.count('Set-Cookie')
assert headers['set-cookie'][0].startswith('bb_lastvisit')
assert headers['set-cookie'][-1].startswith('bb_fbprofilepicurl')
示例2: test_simple
def test_simple():
response = HTTPResponse()
response.feed("""HTTP/1.1 200 Ok\r\nContent-Length: 0\r\n\r\n""")
assert response.headers_complete
assert response.message_complete
assert response.should_keep_alive()
assert not response.should_close()
assert response.status_code == 200
示例3: test_close_connection_and_no_content_length
def test_close_connection_and_no_content_length():
response = HTTPResponse()
response.feed("HTTP/1.1 200 Ok\r\n"
"Connection: close\r\n\r\n"
"Hello World!")
assert response._body_buffer == bytearray("Hello World!")
assert not response.should_keep_alive()
assert response.should_close()
示例4: test_on_body_raises
def test_on_body_raises():
response = HTTPResponse()
def on_body(buf):
raise RuntimeError('error')
response._on_body = on_body
with pytest.raises(RuntimeError):
response.feed(RESPONSE)
示例5: test_on_message_begin
def test_on_message_begin():
response = HTTPResponse()
def on_message_begin():
raise RuntimeError('error')
response._on_message_begin = on_message_begin
with pytest.raises(RuntimeError):
response.feed(RESPONSE)
示例6: test_parse_error
def test_parse_error():
response = HTTPResponse()
try:
response.feed("HTTP/1.1 asdf\r\n\r\n")
response.feed("")
assert response.status_code, 0
assert response.message_begun
except HTTPParseError as e:
assert 'invalid HTTP status code' in str(e)
else:
assert False, "should have raised"
示例7: test_keep_alive_bodyless_10x_request_with_body
def test_keep_alive_bodyless_10x_request_with_body():
response = HTTPResponse()
response.feed("""HTTP/1.1 100 Continue\r\n\r\n""")
assert response.should_keep_alive()
response = HTTPResponse()
response.feed("""HTTP/1.1 100 Continue\r\nTransfer-Encoding: chunked\r\n\r\n""")
assert response.should_keep_alive()
assert response.should_close()
示例8: test_keep_alive_bodyless_response_with_body
def test_keep_alive_bodyless_response_with_body():
response = HTTPResponse(method='HEAD')
response.feed("HTTP/1.1 200 Ok\r\n\r\n")
assert response.should_keep_alive()
response = HTTPResponse(method='HEAD')
with pytest.raises(HTTPParseError):
response.feed(
"""HTTP/1.1 200 Ok\r\nContent-Length: 10\r\n\r\n0123456789""")
assert response.should_keep_alive()
assert response.should_close()
示例9: test_cookielib_compatibility
def test_cookielib_compatibility():
cj = CookieJar()
# Set time in order to be still valid in some years, when cookie strings expire
cj._now = cj._policy._now = time.mktime((2012, 1, 1, 0, 0, 0, 0, 0, 0))
request = Request('http://test.com')
parser = HTTPResponse()
parser.feed(MULTI_COOKIE_RESPONSE)
cookies = cj.make_cookies(parser, request)
# Don't use extract_cookies directly, as time can not be set there manually for testing
for cookie in cookies:
if cj._policy.set_ok(cookie, request):
cj.set_cookie(cookie)
# Three valid, not expired cookies placed
assert len(list(cj)) == 3
示例10: test_incomplete_response
def test_incomplete_response():
response = HTTPResponse()
response.feed("""HTTP/1.1 200 Ok\r\nContent-Length:10\r\n\r\n1""")
with pytest.raises(HTTPParseError):
response.feed("")
assert response.should_keep_alive()
assert response.should_close()
示例11: test_keep_alive_http_10
def test_keep_alive_http_10():
response = HTTPResponse()
response.feed("""HTTP/1.0 200 Ok\r\n\r\n""")
response.feed("")
assert response.headers_complete
assert response.message_complete
assert not response.should_keep_alive()
assert response.should_close()
assert response.status_code == 200
示例12: test_parse_small_blocks
def test_parse_small_blocks():
parser = HTTPResponse()
parser.feed(RESPONSE)
response = StringIO(RESPONSE)
while not parser.message_complete:
data = response.read(10)
parser.feed(data)
assert parser.message_begun
assert parser.headers_complete
assert parser.message_complete
assert parser.should_keep_alive()
assert parser.status_code == 301
assert sorted(parser.items()) == [
('cache-control', 'public, max-age=2592000'),
('content-length', '218'),
('content-type', 'text/html; charset=UTF-8'),
('date', 'Thu, 13 Oct 2011 15:03:12 GMT'),
('expires', 'Sat, 12 Nov 2011 15:03:12 GMT'),
('location', 'http://www.google.fr/'),
('server', 'gws'),
('x-xss-protection', '1; mode=block'),
]
示例13: test_response_too_long
def test_response_too_long():
response = HTTPResponse()
data = """HTTP/1.1 200 Ok\r\nContent-Length:1\r\n\r\ntoolong"""
with pytest.raises(HTTPParseError):
response.feed(data)
示例14: test_compatibility_with_previous_API_read
def test_compatibility_with_previous_API_read():
parser = HTTPResponse()
parser.feed(MULTI_COOKIE_RESPONSE)
for single_item in ("content-encoding", "content-type", "content-length", "cache-control", "connection"):
assert isinstance(parser[single_item], basestring)
assert isinstance(parser.get(single_item), basestring)
示例15: test_parse
def test_parse():
parser = HTTPResponse()
assert parser.feed(RESPONSE), len(RESPONSE)
assert parser.message_begun
assert parser.headers_complete
assert parser.message_complete