コード例 #1
0
ファイル: test_await_fifo.py プロジェクト: hansroh/skitai
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
コード例 #2
0
ファイル: test_http_request.py プロジェクト: hansroh/skitai
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'
	
コード例 #3
0
ファイル: test_websocket.py プロジェクト: AmesianX/skitai
def assert_status(resp):
    rprint(resp.status_code)
    assert resp.content == (1, 'Welcome Client 0')
コード例 #4
0
ファイル: test_websocket.py プロジェクト: AmesianX/skitai
def assert_status3(resp):
    rprint(resp.status_code)
    assert resp.content == (1, "2nd: I'm a Websocket")
コード例 #5
0
def assert_status(resp):
    global ERRS
    if resp.status_code != resp.meta.get("expect", 200):
        rprint(resp.status_code)
        ERRS += 1
コード例 #6
0
ファイル: test_http_response.py プロジェクト: AmesianX/skitai
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
コード例 #7
0
ファイル: test_http_request.py プロジェクト: hansroh/skitai
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"