Beispiel #1
0
def test_default_handler(wasc, client):
    vh = testutil.install_vhost_handler()
    testutil.mount("/", "./examples/statics")

    request = client.get("http://www.skitai.com/1001.htm")
    assert_request(vh, request, 404)

    request = client.get("http://www.skitai.com/100.htm")
    resp = assert_request(vh, request, 200)
    assert resp.get_header('cache-control') is None

    request = client.get("http://www.skitai.com/img/reindeer.jpg")
    resp = assert_request(vh, request, 200)
    assert resp.get_header('cache-control')

    request = client.get("http://www.skitai.com/img/reindeer.jpg",
                         version="2.0")
    resp = assert_request(vh, request, 200)
    assert resp.get_header('cache-control')
Beispiel #2
0
def test_params(wasc, app, client):
    def z(was):
        k = list(was.request.args.keys())
        k.sort()
        return " ".join(k)

    @app.route("/do", methods=["GET", "POST"])
    def index(was):
        return z(was)

    @app.route("/do2", methods=["GET", "POST"])
    def index2(was, a):
        return z(was)

    @app.route("/do3/<u>", methods=["GET", "POST"])
    def index3(was, **args):
        return z(was)

    @app.route("/do4/<u>", methods=["GET", "POST"])
    def index4(was, u, a, b):
        return z(was)

    @app.route("/do5/<u>", methods=["GET", "POST"])
    def index5(was, u, a):
        return z(was)

    @app.route("/do6", methods=["GET", "POST"])
    def index6(was, a):
        return z(was)

    # WSGI
    vh = testutil.install_vhost_handler()
    root = confutil.getroot()
    pref = skitai.pref()
    vh.add_route("default", ("/", app, root), pref)

    request = client.get("http://www.skitai.com/do")
    resp = assert_request(vh, request, 200)
    assert resp.text == ""

    request = client.get("http://www.skitai.com/do6?a=1")
    resp = assert_request(vh, request, 200)
    assert resp.text == "a"

    request = client.post("http://www.skitai.com/do6", {'a': 1})
    resp = assert_request(vh, request, 200)
    assert resp.text == "a"

    request = client.postjson("http://www.skitai.com/do6", {'a': 1})
    resp = assert_request(vh, request, 200)
    assert resp.text == "a"

    request = client.get("http://www.skitai.com/do?a=1")
    resp = assert_request(vh, request, 200)

    request = client.post("http://www.skitai.com/do", {'a': 1})
    resp = assert_request(vh, request, 200)

    request = client.postjson("http://www.skitai.com/do", {'a': 1})
    resp = assert_request(vh, request, 200)

    #----------------------------------------

    request = client.get("http://www.skitai.com/do2")
    resp = assert_request(vh, request, 400)

    request = client.get("http://www.skitai.com/do2?a=1")
    resp = assert_request(vh, request, 200)
    assert resp.text == "a"

    request = client.get("http://www.skitai.com/do2?a=1&b=1")
    resp = assert_request(vh, request, 400)

    request = client.post("http://www.skitai.com/do2", {'a': 1, 'b': 1})
    resp = assert_request(vh, request, 400)

    request = client.post("http://www.skitai.com/do2?a=1", {'b': 1})
    resp = assert_request(vh, request, 200)
    assert resp.text == "a b"

    request = client.post("http://www.skitai.com/do2", {'a': 1})
    resp = assert_request(vh, request, 200)
    assert resp.text == "a"

    #------------------------------------------

    request = client.post("http://www.skitai.com/do3/1", {'a': 1})
    resp = assert_request(vh, request, 200)

    request = client.post("http://www.skitai.com/do4/1?a=1", {'b': 1})
    resp = assert_request(vh, request, 200)
    assert resp.text == "a b u"

    request = client.post("http://www.skitai.com/do4/1?b=1", {'a': 1})
    resp = assert_request(vh, request, 200)
    assert resp.text == "a b u"

    request = client.post("http://www.skitai.com/do4/1?b=1", {'a': 1})
    resp = assert_request(vh, request, 200)
    assert resp.text == "a b u"

    request = client.post("http://www.skitai.com/do5/1?b=1", {'a': 1})
    resp = assert_request(vh, request, 400)

    request = client.post("http://www.skitai.com/do5/1?a=1", {'b': 1})
    resp = assert_request(vh, request, 200)
    assert resp.text == "a b u"

    request = client.postjson("http://www.skitai.com/do5/1?a=1", {'b': 1})
    resp = assert_request(vh, request, 200)
    assert resp.text == "a b u"
Beispiel #3
0
def test_wsgi_handler(wasc, app, client):
    @app.route("/")
    def index(was, a=0):
        return "Hello"

    @app.route("/json")
    def json(was, a):
        return "Hello"

    @app.route("/rpc2/add")
    def add(was, a, b):
        return a + b

    # WSGI
    vh = testutil.install_vhost_handler()
    testutil.mount("/", (app, confutil.getroot()), skitai.pref())

    request = client.get("http://www.skitai.com/")
    resp = assert_request(vh, request, 200)
    assert resp.text == "Hello"

    request = client.get("http://www.skitai.com/", version="2.0")
    resp = assert_request(vh, request, 200)
    assert resp.text == "Hello"

    request = client.get("http://www.skitai.com/a")
    resp = assert_request(vh, request, 404)

    request = client.get("http://www.skitai.com/?a=b")
    resp = assert_request(vh, request, 200)

    request = client.api().json.post({'a': 1})
    resp = assert_request(vh, request, 200)

    answer = client.rpc("http://www.skitai.com/rpc2/").add(100, 50)
    resp = assert_request(vh, request, 200)

    answer = client.jsonrpc("http://www.skitai.com/rpc2/").add(100, 50)
    resp = assert_request(vh, request, 200)

    testutil.enable_threads()
    assert wasc.numthreads == 1
    assert wasc.threads

    request = client.postjson("http://www.skitai.com/json", {'a': 1})
    resp = assert_request(vh, request, 200)

    request = client.postjson("http://www.skitai.com/json", {'a': 1},
                              version="2.0")
    resp = assert_request(vh, request, 200)

    testutil.disable_threads()
    assert wasc.numthreads == 0
    assert wasc.threads is None

    request = client.postjson("http://www.skitai.com/json", {'a': 1})
    resp = assert_request(vh, request, 200)

    request = client.postjson("http://www.skitai.com/json", {'a': 1},
                              version="2.0")
    resp = assert_request(vh, request, 200)