def assert_fifo(f): fill(f, TESTS) loop = 0 while f: first = f[0] #rprint (first) if hasattr(first, "_ready"): assert first._ready first.rand() del f[0] if random.randrange(2): f.appendleft(first) loop += 1 rprint(loop) return loop
def test_uri_funcs (client): url = "http://www.skitai.com/index" request = client.get (url) assert request.split_uri () == ('/index', None, None, None) url = "http://www.skitai.com/index;SESSIONID=das4534gdfd" request = client.get (url) rprint (request.split_uri ()) assert request.split_uri () == ('/index', ';SESSIONID=das4534gdfd', None, None) url = "http://www.skitai.com/index;SESSIONID=das4534gdfd?a=b#id-454" request = client.get (url) assert request.split_uri () == ('/index', ';SESSIONID=das4534gdfd', '?a=b', None) rprint (request.get_gtxid (), request.get_ltxid ()) assert len (request.get_gtxid ()) == 10 assert request.get_ltxid ()[:3] == '100'
def assert_status(resp): rprint(resp.status_code) assert resp.content == (1, 'Welcome Client 0')
def assert_status3(resp): rprint(resp.status_code) assert resp.content == (1, "2nd: I'm a Websocket")
def assert_status(resp): global ERRS if resp.status_code != resp.meta.get("expect", 200): rprint(resp.status_code) ERRS += 1
def test_producers(client): def g(): for i in range(10): yield ("A" * 10).encode("utf8") def l(): return ([("A" * 10).encode("utf8")] * 10) class s: def __init__(self): self.d = list(range(10)) self.closed = 0 def close(self): self.closed = 1 def read(self, size): if not self.d: return b"" self.d.pop() return ("A" * size).encode("utf8") response = make_response(client) jpg = open(os.path.join(confutil.getroot(), "statics", "reindeer.jpg"), "rb") response("200 OK", "", headers=[("Content-Type", "application/octet-stream")]) response.push_and_done(producers.file_producer(jpg)) assert response.get("content-encoding") is None assert response.get("transfer-encoding") == "chunked" assert jpg.closed response = make_response(client) response("200 OK", "", headers=[("Content-Type", "text/html")]) response.push_and_done(producers.iter_producer(g())) assert response.get("content-encoding") == "gzip" assert response.get("transfer-encoding") == "chunked" response = make_response(client) response("200 OK", "", headers=[("Content-Type", "text/html")]) response.push_and_done(producers.list_producer(l())) assert response.get("content-encoding") is None assert response.get("transfer-encoding") == "chunked" response = make_response(client) response("200 OK", "", headers=[("Content-Type", "text/html")]) producer = s() response.push_and_done(producers.closing_stream_producer(producer)) assert response.get("content-encoding") == "gzip" assert response.get("transfer-encoding") == "chunked" assert producer.closed response = make_response(client) response("200 OK", "", headers=[("Content-Type", "text/html")]) jpg = open(os.path.join(confutil.getroot(), "statics", "reindeer.jpg"), "rb") response.push(producers.closing_stream_producer(s())) response.push(producers.list_producer(l())) response.push(producers.iter_producer(g())) response.push(producers.file_producer(jpg)) response.done() assert response.get("content-encoding") == "gzip" assert response.get("transfer-encoding") == "chunked" assert producer.closed assert jpg.closed response = make_response(client) response("200 OK", "", headers=[("Content-Type", "text/html")]) jpg = open(os.path.join(confutil.getroot(), "statics", "reindeer.jpg"), "rb") response.push(producers.closing_stream_producer(s())) response.push(producers.list_producer(l())) response.push(producers.iter_producer(g())) response.push(producers.file_producer(jpg)) response.done() response = make_response(client, version="2.0") response("200 OK", "", headers=[("Content-Type", "text/html")]) jpg = open(os.path.join(confutil.getroot(), "statics", "reindeer.jpg"), "rb") conn = MagicMock() conn.data_to_send.return_value = jpg.read() p = h2frame_producer(1, 0, 1, producers.file_producer(jpg), conn, threading.Lock()) response.push_and_done(p) assert response.get("content-encoding") is None rprint(response.reply_headers) assert response.get("transfer-encoding") is None
def test_request_generation (client): url = "http://www.skitai.com/index" # GET request = client.get (url) assert request.command == "get" assert request.method == "GET" assert request.uri == "/index" assert request.version == "1.1" # POSTS # empty body request = client.post ( url, '', headers = [("Content-Type", "application/x-www-form-urlencoded")] ) assert request.body is None payload = {"a": 1, "b": "z"} request = client.post ( url, payload, headers = [("Content-Type", "application/x-www-form-urlencoded")] ) rprint (request.get_header ('content-type')) assert request.command == "post" assert request.body in (b'a=1&b=z', b'b=z&a=1') assert request.get_header ('content-type') == "application/x-www-form-urlencoded; charset=utf-8" request = client.post ( url, payload, headers = [("Content-Type", "application/json")] ) assert request.get_header ('content-length') == "18" assert request.body in (b'{"b": "z", "a": 1}', b'{"a": 1, "b": "z"}') assert request.get_header ('content-type') == "application/json; charset=utf-8" request = client.postjson (url, payload) assert request.body in (b'{"b": "z", "a": 1}', b'{"a": 1, "b": "z"}') assert request.get_header ('content-type') == "application/json; charset=utf-8" # UPLOAD payload.pop ("a") payload ['file'] = open ('./examples/statics/100.htm', "rb") request = client.upload (url, payload) print (request.body) assert request.get_header ('content-type').startswith ("multipart/form-data;") assert request.body.startswith (b"-----") and len (request.body) == 445 assert request.get_header ('content-length') == "445" # XMLRPC request = client.xmlrpc (url).calucator.add ("A", 1) rprint (request.get_header ('content-length')) assert request.body.startswith (b"<?xml") and len (request.body) == 203 assert request.get_header ('content-type') == "text/xml; charset=utf-8" assert request.get_header ('content-length') == "203" # JSONRPC request = client.jsonrpc (url).calucator.add ("A", 1) assert request.body.startswith (b"{\"") and len (request.body) == 111 assert request.get_header ('content-type') == "application/json-rpc; charset=utf-8" assert request.get_header ('content-length') == "111" # GRPC url = "http://www.skitai.com/routeguide.RouteGuide" point = route_guide_pb2.Point (latitude=409146138, longitude=-746188906) request = client.grpc (url).GetFeature (point) rprint (request.get_header ('content-length')) assert request.get_header ('content-type') == "application/grpc+proto" assert request.body.startswith (b'\x00\x00\x00\x00\x11') and len (request.body) == 22 assert request.get_header ('content-length') is None assert request.version == "2.0"