1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
#!/usr/bin/env python
# -*- coding: utf-8 -*-
try:
from httplib import HTTPConnection
except ImportError:
from http.client import HTTPConnection # NOQA
from circuits.six import b
from circuits.web import Controller
from circuits.web.client import Client, request
from .helpers import urlopen
class Root(Controller):
def index(self):
return "Hello World!"
def request_body(self):
return self.request.body.read()
def response_body(self):
return "ä"
def request_headers(self):
return self.request.headers["A"]
def response_headers(self):
self.response.headers["A"] = "ä"
return "ä"
def test_index(webapp):
f = urlopen(webapp.server.http.base)
s = f.read()
assert s == b("Hello World!")
def test_request_body(webapp):
connection = HTTPConnection(webapp.server.host, webapp.server.port)
connection.connect()
body = b("ä")
connection.request("GET", "/request_body", body)
response = connection.getresponse()
assert response.status == 200
assert response.reason == "OK"
s = response.read()
assert s == b("ä")
connection.close()
def test_response_body(webapp):
connection = HTTPConnection(webapp.server.host, webapp.server.port)
connection.connect()
connection.request("GET", "/response_body")
response = connection.getresponse()
assert response.status == 200
assert response.reason == "OK"
s = response.read()
assert s == b("ä")
connection.close()
def test_request_headers(webapp):
connection = HTTPConnection(webapp.server.host, webapp.server.port)
connection.connect()
body = b("")
headers = {"A": "ä"}
connection.request("GET", "/request_headers", body, headers)
response = connection.getresponse()
assert response.status == 200
assert response.reason == "OK"
s = response.read()
assert s == b("ä")
connection.close()
def test_response_headers(webapp):
client = Client()
client.start()
client.fire(
request(
"GET",
"http://%s:%s/response_headers" % (
webapp.server.host, webapp.server.port
)
)
)
while client.response is None:
pass
assert client.response.status == 200
assert client.response.reason == 'OK'
s = client.response.read()
a = client.response.headers.get('A')
assert a == "ä"
assert s == b("ä")
|